Con trỏ là một biến lưu trữ địa chỉ của biến khác.
Hãy xem xét tuyên bố sau -
int qty = 179;
Khai báo một con trỏ
Cú pháp khai báo một con trỏ như sau -
int *p;
Ở đây, ‘p’ là một biến con trỏ giữ địa chỉ của biến khác.
Khởi tạo con trỏ
Toán tử địa chỉ (&) được sử dụng để khởi tạo một biến con trỏ.
Ví dụ:
int qty = 175; int *p; p= &qty;
Mảng con trỏ
Nó là tập hợp các địa chỉ (hoặc) tập hợp các con trỏ.
Tuyên bố
Sau đây là khai báo cho mảng con trỏ -
datatype *pointername [size];
Ví dụ:
int *p[5];
Nó đại diện cho một mảng con trỏ có thể chứa năm địa chỉ phần tử số nguyên.
Khởi tạo
‘&’ Được sử dụng để khởi tạo
Ví dụ:
int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (or) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i;
Đang truy cập
Toán tử hướng dẫn (*) được sử dụng để truy cập.
Ví dụ:
for (i=0, i<3; i++) printf ("%d", *p[i]);
Chương trình
Sau đây là chương trình C để tính tổng các phần tử của mảng bằng cách sử dụng con trỏ -
//sum of array elements using pointers #include <stdio.h> #include <malloc.h> void main(){ int i, n, sum = 0; int *ptr; printf("Enter size of array : \n"); scanf("%d", &n); ptr = (int *) malloc(n * sizeof(int)); printf("Enter elements in the List \n"); for (i = 0; i < n; i++){ scanf("%d", ptr + i); } //calculate sum of elements for (i = 0; i < n; i++){ sum = sum + *(ptr + i); } printf("Sum of all elements in an array is = %d\n", sum); return 0; }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter size of array: 5 Enter elements in the List 12 13 14 15 16 Sum of all elements in an array is = 70