C语言怎么给结构体的数组初始化?说的不太明白,具体看下面例子

structxscj{intxuehao;charxingming[10];}main(){structxscjstu={243,"jiyu"};//stu.xuehao... 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"这样初始化啊???就想知道结构里的数组该怎么初始化?
展开
 我来答
匿名用户
2019-08-09
展开全部
struct x{
int a;
char b[10];
}c//或者 c={.b="kook"};(记不清要不要c99了)
//或者strcpy(c,"kook");(自己注意添加头文件)
//或者c.b[0]='k';c.b[1]='o';c.b[2]='o';c.b[3]='k';
或者char *d="kook";
for(int i=0;i<strlen(d);i++)
c.b[i]=d[i];
printf("%s",c.b);
随便举几个例子,写法不严谨(越往后方法越那什么...),大佬轻喷
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大维
2019-07-24 · 郑州西亚斯学院副教授
大维
郑州西亚斯学院副教授
采纳数:111 获赞数:366
发表论文14篇。编写教材5部。擅长微控制器应用技术和网络技术

向TA提问 私信TA
展开全部
C的数组初始化!必须在声明的时候才可以用 a[5] = {1,2,3,4,5}; 声明的时候没有初始化!就只能一个元素一个元素赋值了!
更多追问追答
追答
或者用地址传递!
追问
一个元素一个元素赋值,是指stu.xingming[0]='j';
stu.xingming[1]='i';
这样吗???????
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自流坑村眼开眉展的雪梨
2019-07-24 · 超过10用户采纳过TA的回答
知道答主
回答量:43
采纳率:66%
帮助的人:4.9万
展开全部
不能这样,应该是:
stu.xingming="jiyu";

这样就行了。
更多追问追答
追问
我试了一下,运行不了啊
追答
一个元素一个元素赋值一定可以,如:
stu.xingming[0]='j';
stu.xingming[1]='i';
……
C语言在结构体声明的时候如果不初始化的话,就只能这样了。(在结构体声明的时候可以向刚刚一样)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d4fe725
2019-07-24 · 超过11用户采纳过TA的回答
知道答主
回答量:35
采纳率:31%
帮助的人:11.3万
展开全部
这样stu.xingming = "jiyu"就行了,不用带下标。
更多追问追答
追问
我改了然后试了一下,但是都运行不了
追答
struct xscj
{
int xuehao;
char* xingming;
}
这样定义就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式