struct xscj
{
int xuehao;
char xingming[10];
}
main()
{
struct xscj stu={243,"jiyu"};
// stu.xuehao=243;
// stu.xingming[10]="jiyu";
printf("%s",stu.xingming);
}
先不看//后面的,这样是可以输出的,但是如果我把 struct xscj stu【={243,"jiangyu"};】
【】里的去掉然后看//后面的,就不行了,我想知道能不能stu.xingming[10]="jiyu"这样初始化啊???就想知道结构里的数组该怎么初始化?
或者用地址传递!
追问一个元素一个元素赋值,是指stu.xingming[0]='j';
stu.xingming[1]='i';
这样吗???????
是的
本回答被提问者采纳我试了一下,运行不了啊
追答一个元素一个元素赋值一定可以,如:
stu.xingming[0]='j';
stu.xingming[1]='i';
……
C语言在结构体声明的时候如果不初始化的话,就只能这样了。(在结构体声明的时候可以向刚刚一样)
哭了,在结构体声明的时候可以stu.xingming="jiyu";???具体就是
struct xscj
{
int xuehao;
char xingming[10];
}stu={1,"jiyu"}
你说的是这个意思不?
不是,是
stu.xingming[0]='j';
stu.xingming[1]='i';
……
这样。
声明的时候可以使用{1,2,3,4,5},后面不行
地址传递 其实也可以,不过比较复杂
ok知道了谢谢你
我改了然后试了一下,但是都运行不了
追答struct xscj
{
int xuehao;
char* xingming;
}
这样定义就行了
为什么?!我试了不可以啊?