【发布时间】:2015-09-29 07:20:09
【问题描述】:
请有人解释以下代码的输出..
#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”语句被以下替换时的out
1. printf("%u %u", arr + 1, &(arr + 1));
2. printf("%u %u", arr + 1, &arr + 2);
【问题讨论】:
-
你期待什么输出?
-
另外你应该使用 %p 来打印地址。
-
数组的地址 (
&arr) 和数组的第一个元素的地址 (&arr[0]- 当arr衰减为指针时得到的) 具有相同的数值,但确实不是同一个意思。
标签: c arrays arraylist operators logical-operators