结构体指针答疑
- C/C++ code
#include<stdio.h>struct SC{ int a; int b; int c;};struct SD{ int a; int b; int c; int d;};int main(void){ struct SC c1[] = {{3},{4},{5},{6}}; struct SD *c2 = (struct SD*)c1 + 1; //这句看不懂了 帮忙解答下疑问。 经过运行这句,SD变成什么了? printf("%d %d %d %d\n",c2->a,c2->b,c2->c,c2->d); return 0;}[解决办法]
错误的代码,不要理会.
看C primer,其他国外的书.
不要看垃圾书.
[解决办法]
struct SC c1[] 里面是这样的 3,0,0,4,0,0,5,0,0,6,0,0
struct SC 只有3个元素而struct SD有4个元素
强制转换后再加1 指针跳过4个元素只想4后面的0
得出的结果应该是
0,0,5,0
自己可以验证一下