一个c的小问题 请帮忙
今天看书上说
在结构中
struct wrong{
char name[5];
struct wrong a;
};
是错的
但是
typedef struct node{
struct node *n[2];
char color[10];
}NODE;
是对的
它为node型结构定义了一个新名NODE
为什么它是对的
参考答案:struct wrong{
char name[5];
struct wrong a;
};
错误
struct wrong{
char name[5];
struct wrong *a;
};
正确
这个很容易理解,对于第一个结构,sizeof(wrong)是多大?显然不能确定了,造成问题了!但是对于第二个 sizeof(wrong)则大小已知,因为指针一般是4字节大小。