读书人

构造体指针答疑

发布时间: 2012-09-05 15:19:34 作者: rapoo

结构体指针答疑

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
自己可以验证一下

读书人网 >C语言

热点推荐