能分析下下面的代码么 考验的主要是对什么的理解 谢谢!!!
- C/C++ code
struct SC {int a;int b;int c};struct SD {int a;int b;int c;int d};int main(){ struct SC c1[]={{3},{4},{5},{6}}; struct SD *c2 = (struct SD *)c1 + 1; printf("%d %d %d %d ",c2->a,c2->b,c2->c,c2->d); return 0; }[解决办法]
1.纠错 int c后面要加;
2.struct SC c1[]={{3},{4},{5},{6}};
附值,数组中有4个SC,且只附值a
3.原来是内存储存为
3,0,0,4,0,0,5,0,0,6,0,0
【3,0,0】【4,0,0】【5,0,0】【6,0,0】 SC
【3,0,0,4】【0,0,5,0】【0,6,0,0】 SD
+1 之后
输出【0,0,5,0】