| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 887 人关注过本帖
标题:结构体的char负值问题
只看楼主 加入收藏
HGC2006
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-7-31
收藏
 问题点数:0 回复次数:4 
结构体的char负值问题
#define FORMAT "%d\n%s\n%f\n%f\n%f\n"
struct student
{
int num;
char name[20];
float score[3];
};
main()
{
void print (struct student);
struct student stu;
stu.num =123;
//stu.name ="li lin";//这样负值是错误的 为什么?
strcpy(stu.name,"Li lin");
stu.score[0] = 44.1;
stu.score[1] = 44.2;
stu.score[2] = 44.3;
print(stu);
}
void print(struct student stu)
{
printf(FORMAT,stu.num,stu.name,stu.score[0],stu.score[1],stu.score[2]);
printf("\n");
}

提示的错误信息 C:\Documents and Settings\People\book.c(53) : error C2106: '=' : left operand must be l-value
搜索更多相关主题的帖子: 负值 char 结构体 
2007-11-06 11:11
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
stu.name ="li lin"; //这样负值是错误的 为什么?

“赋值”

这种赋值方式只能用于初始化。



stu.name ="li lin"; 这样的话,是把字符串"li lin" 的地址赋给 stu.name,

//-----------------------------------------------------------//




[此贴子已经被作者于2007-11-6 11:20:50编辑过]


—>〉Sun〈<—
2007-11-06 11:15
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/* 可以像下面这样初始化 */
struct student stu = {
123,
"li lin",
{44.1, 44.2, 44.3}
}



void print (struct student); /* 函数声明最好放在 #define 下面 */

[此贴子已经被作者于2007-11-6 11:26:54编辑过]


—>〉Sun〈<—
2007-11-06 11:24
HGC2006
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-7-31
收藏
得分:0 

谢谢两位了,看来C之路还很长啊,


如果世界都是好人,那要警察干嘛?
2007-11-06 11:43
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
[QUOTE]stu.name ="li lin";//这样负值是错误的 为什么?[/QUOTE]
stu.name是一个数组名,是一个常量,而常量不能作为赋值运算的左值

[此贴子已经被作者于2007-11-6 13:52:27编辑过]


英者自知,雄者自胜
2007-11-06 13:51
快速回复:结构体的char负值问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030257 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved