鱼C论坛

 找回密码
 立即注册
查看: 15399|回复: 8

c语言如何连等赋值?

[复制链接]
发表于 2013-3-26 11:33:25 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>

int main(int argc, char **argv)
{
int x = 1,y = 2,z = 3;
x = y*5 = x+z;//  c语言如何连等赋值? 这样赋值为什么不对?求解 谢谢大家!

return 0;
}

最佳答案

查看完整内容

y*5 = x+z; 这个 y*5 的结果不能被赋值 赋值是向一块内存写入数据 你这里的赋值往什么内存写数据 ? 不知道 所以不可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-26 11:33:26 | 显示全部楼层
y*5 = x+z; 这个 y*5 的结果不能被赋值 赋值是向一块内存写入数据 你这里的赋值往什么内存写数据 ? 不知道 所以不可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-26 13:28:44 | 显示全部楼层
y*5 是表达式,而这个表达式只能当右值出现,简单的说,上面的式子等价于x=(y*5=x+z);而y*5=x+z这个表达式中出现了问题,试问x+z这表达式的值应该放到哪个变量中去呢?楼上的解释是对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-26 15:00:17 | 显示全部楼层
赋值表达式是从右往左的,它会先计算x+z的值然后赋值给左端,在C语言中“赋值”符号‘=’是将右边表达式 的值赋给左边的变量,而无法赋值给表达式…………
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-27 09:34:15 | 显示全部楼层
楼上的朋友已给出正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-27 13:07:20 | 显示全部楼层
有意思!这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-27 13:09:28 | 显示全部楼层
可以写成x=y*5==x+z写成这样就对了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-27 23:06:06 | 显示全部楼层
不对,x=y*5没问题,x=x+z也没问题,但这样x = y*5 = x+z就不对了。逻辑不通
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-28 14:50:54 | 显示全部楼层
是规定不能  没为什么  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-15 08:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表