我知道只有數組名稱本身具有該數組第一個元素地址的值。例如,int num [] = {1,2,3}; so num的值爲& num [0]和一個單獨的地址。但是,當我嘗試找到此地址爲num時,它給了我與& num [0]相同的地址。他們不應該有不同的地址num and & num [0]。數組指針的地址
int main(){
int num[4]={1,2,3,4};
int* int_ptr = num;
printf("%d\n", &num[0]);
printf("%d\n", num);
printf("%d\n", &num);
printf("%d", int_ptr);
}
我的輸出是:
6422268
6422268
6422268
6422268
使用'%p'打印指針值。而'num'是'#num [0]'好的。該數組的地址是它的第一個元素的地址。也適用於指針。但是'#num num'只適用於數組。 –
「我瞭解到,只是數組名稱本身指向該數組的第一個元素」 - 您學到了錯誤。數組不是指針! – Olaf
@Olaf哦,我的壞。我的意思是它包含該數組的第一個元素的地址。 –