(重要!!!!!)第4題:考查指針,這道題只適合於那些特別細心且對指針和數組有深入理解的人
#include<stdlib.h>
#include<stdio.h>
int main()
{
int a[5] = {1,2,3,4,5};
int* ptr = (int*)(&a+1);
printf("%d %d\n" , *(a+1), *(ptr-1) );
return 0;
}
這段程序的輸出是:
(a) 2 2 (b) 2 1 (c) 2 5 (d)以上均不是
解答:
a的類型是一個整型數組,它有5個成員
&a的類型是一個整型數組的指針
所以&a+ 1指向的地方等同於a[6]
所以*(a+1)等同於a[1]
ptr等同a[6],(ptr-1)就等同與a[5]