以下程序顯示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