Con trỏ là một biến lưu trữ địa chỉ của một biến khác.
Tính năng
- Con trỏ tiết kiệm dung lượng bộ nhớ.
- Thời gian thực thi của con trỏ nhanh hơn do truy cập trực tiếp vào vị trí bộ nhớ.
- Với sự trợ giúp của con trỏ, bộ nhớ được truy cập hiệu quả, tức là bộ nhớ được cấp phát và phân bổ động.
- Con trỏ được sử dụng với cấu trúc dữ liệu.
Khai báo và khởi tạo con trỏ
Hãy xem xét tuyên bố sau -
int qty = 179;
Trong bộ nhớ, biến có thể được biểu diễn như sau -
Khai báo một con trỏ
Nó có nghĩa là ‘p’ là một biến con trỏ, giữ địa chỉ của một biến số nguyên khác, như được hiển thị bên dưới -
Int *p;
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 5 địa chỉ phần tử 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 mẫu
Dưới đây là chương trình cho mảng con trỏ -
#include<stdio.h> main ( ){ int a[3] = {10,20,30}; int *p[3],i; for (i=0; i<3; i++) p[i] = &a[i]; printf ("elements of the array are \n"); for (i=0; i<3; i++) printf ("%d \t", *p[i]); }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
elements at the array are : 10 20 30
Ví dụ 2
Dưới đây là chương trình cho mảng con trỏ đến chuỗi -
#include <stdio.h> #include <stdlib.h> int main(void){ char *a[5] = {"one", "two", "three", "four", "five"}; int i; printf ( "the strings are at locations:\n"); for (i=0; i<5; i++) printf ("%d\n", a[i]); return 0; }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
The strings are at locations: 4210688 4210692 4210696 4210702 4210707