有人问我以下代码的输出是什么:
int a[5] = { 1, 3, 5, 7, 9 }; int *p = (int *)(&a + 1); printf("%d, %d", *(a + 1), *(p - 1));
3, 9
3, 1
2, 1
答案是NO.1
很容易得到的*(a+1)是3。
*(a+1)
但是 和int *p = (int *)(&a + 1);呢*(p - 1)?
int *p = (int *)(&a + 1);
*(p - 1)
c language-lawyer
c ×1
language-lawyer ×1