Bài giảng Kỹ thuật lập trình - Chương 6: Con trỏ
Số trang: 56
Loại file: pdf
Dung lượng: 489.68 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Kỹ thuật lập trình - Chương 6: Con trỏ, cung cấp cho người học những kiến thức như: Con trỏ và cú pháp khai báo; Các phép toán trên biến con trỏ; Con trỏ và hàm; Con trỏ và dữ liệu kiểu mảng, xâu ký tự, cấu trúc; Cấp phát bộ nhớ động. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình - Chương 6: Con trỏ BÀI GIẢNG HỌC PHẦNKỸ THUẬT LẬP TRÌNH CHƯƠNG 6: CON TRỎ Nội dung6.1. Con trỏ và cú pháp khai báo6.2. Các phép toán trên biến con trỏ6.3. Con trỏ và hàm6.4. Con trỏ và dữ liệu kiểu mảng, xâu ký tự, cấu trúc6.5. Cấp phát bộ nhớ động 2 6.1. Con trỏ và cú pháp khai báo• Khái niệm• Cú pháp khai báo• Con trỏ kiểu void 3 Khái niệm• Kiểu con trỏ là kiểu dữ liệu dùng để chứa địa chỉ• Biến con trỏ (gọi tắt là con trỏ) dùng để chứa địa chỉ của một đối tượng (biến hoặc hàm)• Con trỏ thường được dùng trong các trường hợp: - Trả về nhiều giá trị từ hàm (thông qua cơ chế truyền tham số theo địa chỉ trong hàm) - Truyền mảng và xâu ký tự giữa các hàm - Tạo các cấu trúc dữ liệu phức tạp (danh sách liên kết, cây nhị phân, …) 4 Cú pháp khai báo (1)• Cú pháp: kiểu_dữ_liệu *tên_con_trỏ; Ví dụ: int x,y,*px,*py;x, y là các biến nguyênpx, py là các con trỏ kiểu int (cấp phát các vùng nhớ có tên là px, py dùng để lưu địa chỉ của các đối tượng kiểu int)*px là nội dung của px (giá trị của đối tượng mà px lưu địa chỉ)*py là nội dung của py (giá trị của đối tượng mà py lưu địa chỉ) 5 Cú pháp khai báo (2) Khi sử dụng các lệnh: px = &x; //gán địa chỉ của biến x cho con trỏ px py = &y; //gán địa chỉ của biến y cho con trỏ py ta nói: px trỏ tới x và py trỏ tới y *px tương đương với x, *py tương đương với y 6 Ví dụ (1)• Khai báo: int x = 4,y = 5,*px,*py; Địa chỉ Nội Địa chỉ NộiBiến Biến vùng nhớ dung vùng nhớ dung x 1201 px 2010 4 1202 2011 1203 2012 1204 2013 y 1205 py 2014 5 1206 2015 1207 2016 7 Ví dụ (2)• Thực hiện các lệnh gán: px = &x; py = &y; Địa chỉ Nội Địa chỉ NộiBiến Biến vùng nhớ dung vùng nhớ dung x 1201 px 2010 4 1201 1202 2011 1203 2012 1204 2013 y 1205 py 2014 5 1205 1206 2015 1207 2016 8 Ví dụ (3)• Thực hiện các lệnh gán: *px += 10; *py += 10; Địa chỉ Nội Địa chỉ NộiBiến Biến vùng nhớ dung vùng nhớ dung x 1201 px 2010 14 1201 1202 2011 1203 2012 1204 2013 y 1205 py 2014 15 1205 1206 2015 1207 2016 9 Con trỏ kiểu void• Là dạng con trỏ đặc biệt (con trỏ không kiểu), có thể nhận bất kỳ địa chỉ kiểu nào• Cú pháp khai báo: void *tên_con_trỏ; Ví dụ: void *p; float a[20][30]; p=a;• Con trỏ void thường được dùng làm tham số để nhận bất kỳ địa chỉ kiểu nào từ tham số thực. Khi đó, trong thân hàm phải sử dụng phép ép kiểu để chuyển sang dạng địa chỉ cần xử lý 10 6.2. Các phép toán trên biến con trỏ (1) Có 4 phép toán cơ bản: Phép gán, phép tăng/giảm địa chỉ, phép truy nhập bộ nhớ, phép so sánh• Phép gán giá trị:- Các con trỏ phải cùng kiểu, muốn gán các con trỏ khác kiểu nên dùng phép ép kiểu Ví dụ: int x; char *p; p = (char*)(&x); 11 6.2. Các phép toán trên biến con trỏ (2)• Phép tăng/giảm địa chỉ:- Ví dụ 1: float x[30],*p; p = &x[10];//p trỏ tới x[10] Giá trị kiểu float lưu trong 4 byte các phép tăng/giảm địa chỉ được thực hiện trên 4 bytep+i trỏ tới x[10+i], p-i trỏ tới x[10-i]- Ví dụ 2: float y[20][30]; y là một mảng gồm các dòng có 30 phần tử thực Kiểu địa chỉ của y là 30*4 = 120 bytey trỏ tới đầu dòng thứ nhất y[0][0]y+1 trỏ tới đầu dòng thứ hai y[1][0] … ...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình - Chương 6: Con trỏ BÀI GIẢNG HỌC PHẦNKỸ THUẬT LẬP TRÌNH CHƯƠNG 6: CON TRỎ Nội dung6.1. Con trỏ và cú pháp khai báo6.2. Các phép toán trên biến con trỏ6.3. Con trỏ và hàm6.4. Con trỏ và dữ liệu kiểu mảng, xâu ký tự, cấu trúc6.5. Cấp phát bộ nhớ động 2 6.1. Con trỏ và cú pháp khai báo• Khái niệm• Cú pháp khai báo• Con trỏ kiểu void 3 Khái niệm• Kiểu con trỏ là kiểu dữ liệu dùng để chứa địa chỉ• Biến con trỏ (gọi tắt là con trỏ) dùng để chứa địa chỉ của một đối tượng (biến hoặc hàm)• Con trỏ thường được dùng trong các trường hợp: - Trả về nhiều giá trị từ hàm (thông qua cơ chế truyền tham số theo địa chỉ trong hàm) - Truyền mảng và xâu ký tự giữa các hàm - Tạo các cấu trúc dữ liệu phức tạp (danh sách liên kết, cây nhị phân, …) 4 Cú pháp khai báo (1)• Cú pháp: kiểu_dữ_liệu *tên_con_trỏ; Ví dụ: int x,y,*px,*py;x, y là các biến nguyênpx, py là các con trỏ kiểu int (cấp phát các vùng nhớ có tên là px, py dùng để lưu địa chỉ của các đối tượng kiểu int)*px là nội dung của px (giá trị của đối tượng mà px lưu địa chỉ)*py là nội dung của py (giá trị của đối tượng mà py lưu địa chỉ) 5 Cú pháp khai báo (2) Khi sử dụng các lệnh: px = &x; //gán địa chỉ của biến x cho con trỏ px py = &y; //gán địa chỉ của biến y cho con trỏ py ta nói: px trỏ tới x và py trỏ tới y *px tương đương với x, *py tương đương với y 6 Ví dụ (1)• Khai báo: int x = 4,y = 5,*px,*py; Địa chỉ Nội Địa chỉ NộiBiến Biến vùng nhớ dung vùng nhớ dung x 1201 px 2010 4 1202 2011 1203 2012 1204 2013 y 1205 py 2014 5 1206 2015 1207 2016 7 Ví dụ (2)• Thực hiện các lệnh gán: px = &x; py = &y; Địa chỉ Nội Địa chỉ NộiBiến Biến vùng nhớ dung vùng nhớ dung x 1201 px 2010 4 1201 1202 2011 1203 2012 1204 2013 y 1205 py 2014 5 1205 1206 2015 1207 2016 8 Ví dụ (3)• Thực hiện các lệnh gán: *px += 10; *py += 10; Địa chỉ Nội Địa chỉ NộiBiến Biến vùng nhớ dung vùng nhớ dung x 1201 px 2010 14 1201 1202 2011 1203 2012 1204 2013 y 1205 py 2014 15 1205 1206 2015 1207 2016 9 Con trỏ kiểu void• Là dạng con trỏ đặc biệt (con trỏ không kiểu), có thể nhận bất kỳ địa chỉ kiểu nào• Cú pháp khai báo: void *tên_con_trỏ; Ví dụ: void *p; float a[20][30]; p=a;• Con trỏ void thường được dùng làm tham số để nhận bất kỳ địa chỉ kiểu nào từ tham số thực. Khi đó, trong thân hàm phải sử dụng phép ép kiểu để chuyển sang dạng địa chỉ cần xử lý 10 6.2. Các phép toán trên biến con trỏ (1) Có 4 phép toán cơ bản: Phép gán, phép tăng/giảm địa chỉ, phép truy nhập bộ nhớ, phép so sánh• Phép gán giá trị:- Các con trỏ phải cùng kiểu, muốn gán các con trỏ khác kiểu nên dùng phép ép kiểu Ví dụ: int x; char *p; p = (char*)(&x); 11 6.2. Các phép toán trên biến con trỏ (2)• Phép tăng/giảm địa chỉ:- Ví dụ 1: float x[30],*p; p = &x[10];//p trỏ tới x[10] Giá trị kiểu float lưu trong 4 byte các phép tăng/giảm địa chỉ được thực hiện trên 4 bytep+i trỏ tới x[10+i], p-i trỏ tới x[10-i]- Ví dụ 2: float y[20][30]; y là một mảng gồm các dòng có 30 phần tử thực Kiểu địa chỉ của y là 30*4 = 120 bytey trỏ tới đầu dòng thứ nhất y[0][0]y+1 trỏ tới đầu dòng thứ hai y[1][0] … ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật lập trình Kỹ thuật lập trình Con trỏ Xâu ký tự Cú pháp khai báo Cấp phát bộ nhớ động Con trỏ kiểu voidGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 266 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 208 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 195 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 167 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 118 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 109 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 106 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 92 0 0