以下程序显示a和数组共享相同的地址。 我应该如何理解这种行为? 是否为& arr指针arr的地址,其中包含10个字符的开始地址?数组指针的地址,&array
#include <stdio.h>
int main()
{
char arr[10] = {0};
char* a = (char*)(&arr);
*a = 1;
printf("a=%p,arr=%p.\n", a, arr);
printf("%d\n", arr[0]);
return 0;
}
'&arr'是'arr'的第一个元素的地址。当然,'a'具有相同的值,因为您首先为其分配了该值。 – 2014-09-02 14:59:37
@亚历克斯:你必须学习的第一件事就是没有“指针'arr'”这样的东西。 'arr'数组是数组,而不是指针。那里没有任何指针。有大量的信息正确地解释了网络上的数组。 – AnT 2014-09-02 15:32:37