C语言里面结构体初始化遇到问题!疑惑不解
#include <stdio.h> struct s1
{
char *s;
int i;
struct s1 *sip;
};
main ()
{
struct s1 a[]={{"abcd",1,a+1},{"efgh",2,a+2},{"ijkl",3,a}};/*注释*/
struct s1 *p=a;
int i=0;
printf("%s %s %s",a[0].s,p->s,a[2].sip->s);
printf("%d %d",i+2,--a[i].i);
printf("%c\n",++a[i].s[3]);
}
================
....
struct test
{
char a;
int *p;
};
main()
{
int c=3;
struct test pro={'b',&c};/*注释*/
......
}
================
上面是两个不同的代码..编译运行的时候都提示/*注释*/部分非法赋值.....
问题出在哪里?
请不要在书写正确与错误上作文章,也请不要在最后一个printf语句那里给我讲了,那是正确的,而且我的问题也不是这个,我是问为什么注释部分的初始化提示非法初始化。
我在TC,Lcc-win32上面都编译了,问题一样发生