指针是一个变量,用于存储某个地址,可以通过赋值改变其指向的内存位置。
数组名可以像指针一样,通过下标操作符([]
)访问元素:
int arr[5] = {1, 2, 3, 4, 5};
printf("%d\n", arr[0]); // 输出 1
printf("%d\n", *(arr + 1)); // 输出 2
数组是一个连续的内存块,而指针只是一个存储地址的变量。
int arr[3] = {1, 2, 3};
int* ptr = arr;
printf("%p\n", (void*)&arr); // 数组的地址
printf("%p\n", (void*)&ptr); // 指针变量的地址
printf("%p\n", (void*)ptr); // 指针指向的地址