C语言中指针指向数组名和指针指向数组名地址有什么区别
时间: 2024-01-12 18:02:34 浏览: 74
c语言中 数组名和指针的区别
在C语言中,指针指向数组名和指针指向数组名地址是有区别的。指针指向数组名时,它指向的是整个数组,而指针指向数组名地址时,它指向的是数组的首地址,即第0个元素的地址。因此,指针指向数组名时可以通过指针来访问整个数组,而指针指向数组名地址时只能访问数组的第0个元素。下面是一个例子:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int *p1 = arr; // 指针指向数组名
int *p2 = &arr[0]; // 指针指向数组名地址
printf("p1[2] = %d\n", p1[2]); // 输出:3
printf("p2[2] = %d\n", p2[2]); // 输出:3
printf("*p1 = %d\n", *p1); // 输出:1
printf("*p2 = %d\n", *p2); // 输出:1
return 0;
}
```
阅读全文