结构体赋值给数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体赋值给数组相关的知识,希望对你有一定的参考价值。
c语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成。例如:
char
a[10]
=
"123";
/*正确,在定义的时候初始化*/
char
a[10];
a
=
"123";
/*错误,不能用“=”直接为字符数组赋值*/
strcpy(a,
"123");
/*正确,使用strcpy函数复制字符串*/
所以要对game[0][0].cpart赋值应该用strcpy(game[0][0].cpart,
"123");才对。注意要使用strcpy函数要用#include
包含string.h头文件。 参考技术A 对于已经定义好了的数组,肯定不能用这样赋值啦,给结构体赋值其实就跟其他的变量赋值一样,难道你可以
int
a[3];
a=0,1,2;
这个给一个int数组赋值吗,不行啊。
正确的做法就是像其他变量一样一个一个赋值,当然也可在结构体初始化时赋值
如何对结构体中的数组进行一次性全部赋值?谢谢,比如就是这个意思 b.a[]=,,,,;
1、在定义的时候初始化。2.把这个数组再放到一个内部结构体中,这样就可以一次性赋值。例如:
struct
struct
int a[20];
aa;
int c;
b,d;
b.aa=d.aa//将d中的a数组复制到b中的a数组。 参考技术A 楼上的误导人啊,数组不可以这样赋值的
struct
int data;
int a[4];
c;//定义结构体C
c.a=1,2,3,4;追问
那这也不对啊,我试了,有错误,我是用的vc6.0 xp
追答#include
#include
struct c //注意这里,以前写的也不对
int data;
int a[4];
;//定义结构体C
int main()
int i,b[4]=1,2,3,4;//可以这样初始化
int m[4];
// m[4]=1,2,3,4;/*这句错了,定义好的数组不能这样赋值了, 去掉可以运行*/
c test;
for(i=0;i<4;i++)
test.a[i]=i;
for(i=0;i<4;i++)
printf("%d",test.a[i]);
system("pause");
return 0;
//上面是我测试好的代码,哎,不好意思啦,结构体都没定义对,还有,数组赋值还要一个个来
数组赋值不可以整体一次性定义吗?
追答不行的,只有初始化的时候可以整体赋值
要是真的想整体赋值的话,你可以自己写个数组类
不过我感觉多余了哎
标准库什么的我不太懂,不好说
额,你可以去网上查查看的
嗯,谢谢啊,上次我们老师问了这个问题,然后就不知道,就问了……那我查出来了,给你发过去,
追答好啊,嘿嘿
追问没有找到,可能不行吧。下次我问老师咋干的。
追答好的啊,呵呵
本回答被提问者和网友采纳以上是关于结构体赋值给数组的主要内容,如果未能解决你的问题,请参考以下文章