Xét ví dụ sau :
#include <stdio.h>
int
main()
{
char
mang[4]; // khai báo mảng gồm 4 phần tử
int
i;
for
(i = 0; i < 4; ++i)
{
printf
(
"Dia chi cua mang[%d] = %u\n"
, i, &mang[i]);
// IN RA ĐỊA CHỈ CỦA MẢNG.
//
& ĐỊA CHỈ.
}
return
0;
}
KẾT QUẢ :
Dia chi cua mang[0] = 600503364 // ĐỊA CHỈ MẢNG THỨ 1.
Dia chi cua mang[1] = 600503365 // ĐỊA CHỈ MẢNG THỨ 2.
Dia chi cua mang[2] = 600503366 // ĐỊA CHỈ MẢNG THỨ 3.
Dia chi cua mang[3] = 600503367 // ĐỊA CHỈ MẢNG THỨ 4.
Mối quan hệ giữa con trỏ và mảng trong lập trình C.
Ví dụ :
int *A[4] Ta có A[0] A[1] A[2] A[3]
Trong đó :
A và &A[0] : Trỏ tới địa chỉ đầu tiên.
Ví dụ: Chương trình tính tổng 5 chữ số nhập từ bàn phím với con trỏ và mảng
#include <stdio.h>
int
main() {
int
i, arr[5],sum = 0;
printf
(
"Nhap 5 so nguyen:\n"
);
for
(i = 0; i < 5; ++i)
{
// (arr + i) la tuong duong voi &arr[i]
scanf
(
"%d"
, (arr + i));
// *(arr + i) la tuong duong voi arr[i]
sum += *(arr + i);
}
printf
(
"Sum = %d"
, sum);
return
0;
}
KẾT QUẢ :
Nhap 5 so nguyen:
1
2
3
4
5
Sum = 15