宅男一只 2013-12-12 13:19 采纳率: 100%
浏览 2112
已采纳

C语言关于使用结构体数组的问题

#include
struct Student
{
int mun;
long char name[5];
int score[3];
struct Student *next;
};
int main()
{
struct Student a,b,c,*head,*p;
a.mun=10101;a.name="张丹";a.score[0]=89;a.score[1]=95;a.score[2]=91;
b.mun=10103;a.name="彭浩";b.score[0]=99;a.score[1]=89;a.score[2]=90;
c.mun=10105;a.name="张磊";b.score[0]=85;a.score[1]=95;a.score[2]=97;
head=&a;
a.next=&b;
b.next=&c;
c.next=NULL;
p=head;
do
{
printf("%ld %s %d %d %d %d\n",p->mun,p->name,p->score[0],p->score[1],p->score[2]);
p->next;
}while(p!=NULL);
return 0;
}
在名字赋值那里报错left operand must be l-value,求解释为什么,要怎么修改。

  • 写回答

4条回答

  • 八部天龙zyc 2013-12-13 01:30
    关注

    第一,char类型只有unsigned char和char两种类型,long是不能修饰char类型的;
    第二,对于数组来说,数组名是一个地址值,不能作为左值,只能作为右值;一个汉字在程序中占2或者4个字节,这是根据汉字的编码规则和编译器来确定的,如果要输入汉字,最好用指针的方式。
    第三,写程序的时候要细心哦,“b.mun=10103;a.name="彭浩";b.score[0]=99;a.score[1]=89;a.score[2]=90;b.mun=10103;a.name="彭浩";b.score[0]=99;a.score[1]=89;a.score[2]=90;p = p->next”;
    第三,给你一点小建议,遇到问题了,尽量自己查资料,调试,分析错误,这样收获比较大;希望对你有用!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?