第二题:考查类型转换
#include <stdlib.h> #include <stdio.h> int main() { struct node { int a; int b; int c; }; struct node s= { 3,5,6 }; struct node *pt = &s; printf("%d\n" , *(int*)pt); return 0; }
这段程序的输出是:
(a)3 (b) 5 (c) 6 (d) 7
解答:
这个题很简单,主要考察类型强制转化问题:
结构体的成员在内存中的地址是按照他们定义的位置顺序依次增长的。如果一个结构体的指针被看成它的第一个成员的指针,那么该指针的确指向第一个成员