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"这样初始化啊???就想知道结构里的数组该怎么初始化? 展开
{
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"这样初始化啊???就想知道结构里的数组该怎么初始化? 展开
4个回答
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);
随便举几个例子,写法不严谨(越往后方法越那什么...),大佬轻喷
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);
随便举几个例子,写法不严谨(越往后方法越那什么...),大佬轻喷
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C的数组初始化!必须在声明的时候才可以用 a[5] = {1,2,3,4,5}; 声明的时候没有初始化!就只能一个元素一个元素赋值了!
更多追问追答
追答
或者用地址传递!
追问
一个元素一个元素赋值,是指stu.xingming[0]='j';
stu.xingming[1]='i';
这样吗???????
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能这样,应该是:
stu.xingming="jiyu";
这样就行了。
stu.xingming="jiyu";
这样就行了。
更多追问追答
追问
我试了一下,运行不了啊
追答
一个元素一个元素赋值一定可以,如:
stu.xingming[0]='j';
stu.xingming[1]='i';
……
C语言在结构体声明的时候如果不初始化的话,就只能这样了。(在结构体声明的时候可以向刚刚一样)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样stu.xingming = "jiyu"就行了,不用带下标。
更多追问追答
追问
我改了然后试了一下,但是都运行不了
追答
struct xscj
{
int xuehao;
char* xingming;
}
这样定义就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询