指针在我的理解就是一个指向值的地址,地址是连续的,比如这个:
我写了一个数组,分别赋值4,5,6...11;
它们的地址分别如下:
可以看到地址增长是4,这是因为,地址虽然是连续的,但是每个地址也是有空间的,int型在我电脑是4bytes,所以这里是以4位长;
数组指针:
int (*arrayPtr)[5] 这里用括号是因为[]的优先级比较高,所以要用括号括起来,
#include <stdio.h>
int main() {
// 声明一个数组,包含5个整数
int arr[5] = {1, 2, 3, 4, 5};
// 声明一个指向包含5个整数的数组的指针
int (*arrayPtr)[5];
// 让指针指向我们刚刚声明的数组
arrayPtr = &arr;
// 通过数组指针访问数组元素
printf("First element: %d\n", (*arrayPtr)[0]);
printf("Third element: %d\n", (*arrayPtr)[2]);
return 0;
}
指针数组:
#include <stdio.h>
int main() {
// 声明5个整数
int a = 1, b = 2, c = 3, d = 4, e = 5;
// 声明一个包含5个整数指针的数组
int *ptrArray[5];
// 让数组中的每个指针分别指向上面声明的整数
ptrArray[0] = &a;
ptrArray[1] = &b;
ptrArray[2] = &c;
ptrArray[3] = &d;
ptrArray[4] = &e;
// 通过指针数组访问整数
printf("First element: %d\n", *ptrArray[0]);
printf("Third element: %d\n", *ptrArray[2]);
return 0;
}