有人请解释下面的代码的输出数组的地址..打印使用“数组名”和“数组名地址的”
#include <stdio.h>
int main()
{
int arr[5];
// Assume base address of arr is 2000 and size of integer is 32 bit
printf("%u %u", arr + 1, &arr + 1);
return 0;
}
也解释了当的“printf”语句通过以下
1. printf("%u %u", arr + 1, &(arr + 1));
2. printf("%u %u", arr + 1, &arr + 2);
是你期待什么输出& &? – Raman
你也应该使用%p来打印地址。 – Raman
数组的地址('&arr')和数组第一个元素的地址('&arr [0]' - 当arr衰变为指针时得到的数值)具有相同的数值,但并不意味着相同事情。 – molbdnilo