C语言。我想问一下为什么这个会报错?结构体变量不就是这样赋值的么??求解答。谢谢

如题所述

name你定义的是字符数组,却给它赋String,当然会报错追问

字符数组不是可以用来存一个字符串么。。。

在直接在结构体类型后面赋值不就可以用这个呢

追答

你可以在定义的时候直接用字符串赋值
char a[10]="hello";
但是不能先定义再给它赋值,如
char a[10];
a[10]="hello";
这样是错误的!
char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-27
数组不能这样赋值。
name代表数组的首地址,“lining”返回的也是一个地址,将地址付给一个常量地址报错。
第2个回答  2015-04-27
这里不能直接用a.name=,改成strcpy就可以了追问

可以说说为什么么。。我不是明明定义了字符数组

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网