Kieu con tro docx

29 1.4K 0
Kieu con tro docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 CHƯƠNG 6: KIỂU CON TRỎ 6.1 Con trỏ và địa chỉ 6.2 Khai báo con trỏ, các phép toán trên con trỏ 6.3 Con trỏ và mảng một chiều 6.4 Con trỏ và mảng nhiều chiều 6.5 Mảng con trỏ 6.6 Cấp phát bộ nhớ động 2 Khái niệm con trỏ  Một con trỏ là một biến chứa địa chỉ ô nhớ. Địa chỉ này là vị trí của một đối tượng khác trong bộ nhớ.  Ví du: float x; //x là một biến có kiểu float x=12.5; //x có giá trị là 12.5 Và lúc này, biến x chiếm 4 ô nhớ liên tiếp, giả sử mỗi ô nhớ có kích thước 1 byte. 3 Con trỏ và địa chỉ Phép lấy địa chỉ của 1 biến  Kí hiệu: &  Cách sử dụng:&<Tên biến>  Ví dụ: int *pi=&a; // pi giữ địa chỉ của các biến nguyên a Phép toán lấy giá trị tại một địa chỉ mà một con trỏ đang trỏ tới Kí hiệu: * Cách sử dụng: *<Tên con trỏ> Ví dụ: int a= 10; // biến a có giá trị 10 int *pi; pi =&a; //pi giữ địa chỉ của biến a *pi là giá trị của a và bằng 10 4 Con trỏ và địa chỉ a 25 x y 25 int a=25, x; int *y; x=a; y=&a; y Ví dụ 1: 5 Con trỏ và địa chỉ int a, *p; a=25; p=&a; m=*p ; Cho biết Giá trị của m ? Ví dụ 2: 6 Con trỏ và địa chỉ Lưu ý: Khi gán địa chỉ của 1 biến cho 1 biến con trỏ, mọi sự thay đổi trên nội dung ô nhớ con trỏ chỉ tới sẽ làm giá trị của biến thay đổi theo. Khi ta khai báo: int a=10;int *pi; pi=&a; // pi giữ địa chỉ biến a *pi=*pi +2; sẽ làm cho biến a có giá trị là 12 Lưu ý: Việc sử dụng và thao tác trên giá trị tại địa chỉ của con trỏ chỉ được thực hiện sau khi con trỏ đã có địa chỉ 7 Con trỏ và địa chỉ int main() { int a,b,*pa,*pb; a=2;b=3; printf("Gia tri cua bien a %d, gia tri cua bien b %d",a,b); pa=&a; pb=&b; printf("\nNoi dung cua o nho con tro pa tro toi %p",*pa); printf("\nNoi dung cua o nho con tro pb tro toi %p",*pb); *pa=20; *pb=30; printf("\nGia tri cua bien a sau khi thay doi la %d",a); printf("\nGia tri cua bien b sau khi thay doi la %d",b); getch(); } 8 C 9 Khai báo con trỏ Khai báo Giống như mọi biến khác, biến con trỏ muốn sử dụng cũng cần phải được khai báo Ví dụ – ch1 và ch2 là biến con trỏ, trỏ tới vùng nhớ kiểu char (1 byte). – p1 là biến con trỏ, trỏ tới vùng nhớ kiểu int (4 bytes) còn p2 là biến kiểu int bình thường. <kiểu dữ liệu> *<tên biến con trỏ>; char *ch1, *ch2; int *p1, p2; 10 Khai báo con trỏ Sử dụng từ khóa typedef Ví dụ typedef <kiểu dữ liệu> *<tên kiểu con trỏ>; <tên kiểu con trỏ> <tên biến con trỏ>; typedef int *pint; int *p1; pint p2, p3; [...]... trên con trỏ 20 Các phép toán trên con trỏ 21 Mảng con trỏ  Mỗi biến con trỏ là một biến đơn Ta có thể tạo mảng của các con trỏ với mỗi phần tử của mảng là một con trỏ  Cú pháp: *Tên mảng con trỏ [số phần tủ]; 22 Mảng con trỏ int *p[5]; int a=6; p[0] = &a; p[2] = p[0]; int b; b = *p[0]; P[0] p a P[1] P[2] 100 6 100 b 23 P[3] P[4] Cấp phát bộ nhớ động Cấp phát vùng nhớ cho biến con trỏ:.. .Con trỏ NULL Khái niệm Con trỏ NULL là con trỏ không chứa địa chỉ nào Khác với con trỏ chưa được khởi tạo int int int int n; *p1 = &n; *p2; *p3 = NULL; NULL 11 Con trỏ và mảng 1 chiều Giữa mảng và con trỏ có một sự liên hệ rất chặt chẽ: – Những phần tử của mảng được xác định bằng chỉ số trong mảng và cũng có thể được xác định qua biến con trỏ – Tên của một mảng tương... printf("\nNoi dung cua con tro p printf("%d",a[i][j]); sau khi tang len 1 la\n"); for(i=0;i . 1 CHƯƠNG 6: KIỂU CON TRỎ 6.1 Con trỏ và địa chỉ 6.2 Khai báo con trỏ, các phép toán trên con trỏ 6.3 Con trỏ và mảng một chiều 6.4 Con trỏ và mảng nhiều chiều 6.5 Mảng con trỏ 6.6 Cấp phát. pa=&a; pb=&b; printf(" Noi dung cua o nho con tro pa tro toi %p",*pa); printf(" Noi dung cua o nho con tro pb tro toi %p",*pb); *pa=20; *pb=30; printf(" Gia. biến con trỏ>; char *ch1, *ch2; int *p1, p2; 10 Khai báo con trỏ Sử dụng từ khóa typedef Ví dụ typedef <kiểu dữ liệu> *<tên kiểu con trỏ>; <tên kiểu con trỏ> <tên biến con

Ngày đăng: 18/06/2014, 14:20

Tài liệu cùng người dùng

Tài liệu liên quan