c语句的小问题

cprime 2008-07-09 01:47:13
请问x = (i = 4,j = 8, k = 32);x的值是多少,编程显示是32,我还以为是44呢,请详细解释一下括号中的语句,它是怎样来赋值。
...全文
102 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
子然君 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 pengzhixi 的回复:]
引用 6 楼 guoqingchun 的回复:
逗号运算符,最右面的才是它的结果
[/Quote]
jaderat 2008-07-09
  • 打赏
  • 举报
回复
昨天复习刚刚好看到逗号运算符!hoho!32
shancao 2008-07-09
  • 打赏
  • 举报
回复
逗号表达式。是计算顺序是从左到右,但是结果把最右边的值赋给它。
pengzhixi 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 guoqingchun 的回复:]
逗号运算符,最右面的才是它的结果
[/Quote]
杂家 2008-07-09
  • 打赏
  • 举报
回复
逗号运算符,最右面的才是它的结果
jinjunweiruan 2008-07-09
  • 打赏
  • 举报
回复
看最 后一个就知道了。。。。
Andrwyw 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jy01807853 的回复:]
x = (i = 4,j = 8, k = 32);
这里面有2种运算符号赋值和逗号运算
1.i = 4 在与j = 8做逗号运算结果是8
然后在与k = 32做逗号运算 结果是32
赋值的优先级比逗号高,所以i = 4,j =8,k =32
这个几都先赋值,然后在做逗号运算
逗号运算的结果是第2个表达式的结果,
在与k 做逗号运算 所以结果就出来了
希望可以帮到你理解
(i=4 -> j = 8 )逗号运算的结果是8在与 k =32做逗号运算
x = 32
[/Quote]
jy01807853 2008-07-09
  • 打赏
  • 举报
回复
x = (i = 4,j = 8, k = 32);
这里面有2种运算符号赋值和逗号运算
1.i = 4 在与j = 8做逗号运算结果是8
然后在与k = 32做逗号运算 结果是32
赋值的优先级比逗号高,所以i = 4,j =8,k =32
这个几都先赋值,然后在做逗号运算
逗号运算的结果是第2个表达式的结果,
在与k 做逗号运算 所以结果就出来了
希望可以帮到你理解
(i=4 -> j = 8 )逗号运算的结果是8在与 k =32做逗号运算
x = 32
visame 2008-07-09
  • 打赏
  • 举报
回复
32
逗号运算符的优先级是最低的
cuiyuana1 2008-07-09
  • 打赏
  • 举报
回复
优先级顺序的问题。

初等运算符--单目运算符--算术运算符--关系运算符--逻辑运算符--条件运算符--赋值运算符--逗号运算符

这些运算优先级依次递减的。

而括号内是自左向右进行运算所以最后的值是32.

不知是否正确,高人指点.
aozhi 2008-07-09
  • 打赏
  • 举报
回复
这句话从逻辑上相当于
x = i = 4;
x = j = 8;
x = k = 32;
这样就明白了吧?
注意,只是相当于!是为了解释方便才这么说。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧