- 数组名a:
在 C 语言中,数组名 a 指向数组的首元素地址。数组名本身是一个指针常量,不可更改。
例如,定义一个 int 类型的数组 arr,其数组名为 a,则 a 就指向 arr[0],a+1 即指向 arr[1]。
示例代码如下:
int arr[3] = {1, 2, 3};
int *a = arr;
printf("%d\n", *a); // 输出:1
printf("%d\n", *(a+1)); // 输出:2
输出:
1
2
- &a:
&a 表示的是数组 a 在内存中的首地址,它是一个指针变量。
例如,定义一个 int 类型的数组 arr,则 &arr 与 arr 都可以表示数组首地址。
示例代码如下:
int arr[3] = {1, 2, 3};
printf("%p\n", &arr); // 输出:0x7ffeea68d540
printf("%p\n", arr); // 输出:0x7ffeea68d540
输出:
0x7ffeea68d540
0x7ffeea68d540
需要注意的是,&arr 和 &arr[0] 表示的都是数组首地址,但它们的类型不同。&arr 的类型是指向数组的指针,其类型为 int ()[3];而 &arr[0] 的类型是指向整型的指针,其类型为 int 。
示例代码如下:
int arr[3] = {1, 2, 3};
printf("%p\n", &arr); // 输出:0x7ffeea68d540
printf("%p\n", &arr[0]); // 输出:0x7ffeea68d540
printf("%p\n", arr); // 输出:0x7ffeea68d540
输出:
0x7ffeea68d540
0x7ffeea68d540
0x7ffeea68d540
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c语言中数组名a和&a详细介绍 - Python技术站