超简单问题,运算符的优先级比较!

woodcord 2005-01-13 11:21:57
运算符的优先级比较!
有程序段:
int x=150,y=10,k=150;
k=(x++,y++);
K=x++,y++;
就是比较赋值号(=)和逗号表达式的优先级。
k=x++,y++;的运算过程俺知道,
但是k=(x++,y++);的运算过程俺不会,好象是把y的值赋给k了。不知道为什么,
xdjm门给说说,先谢了
...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
snow810211 2005-01-13
  • 打赏
  • 举报
回复
to woodcord() ( )

不是吧,俺的c语言课本上说的是取前边的啊??
----
可能使你的书上写错了,逗号表达式的值因该是最右面的
woodcord 2005-01-13
  • 打赏
  • 举报
回复
嘿嘿,应该是课本的错,很多错误,
谢谢大家,谢谢大家!
平时在java泡着,原来这里也很温暖啊!
以后常来这里!
woodcord 2005-01-13
  • 打赏
  • 举报
回复
不是吧,俺的c语言课本上说的是取前边的啊??
Flood1984 2005-01-13
  • 打赏
  • 举报
回复
几个符号的优先级从高到底依次为:() ++ = ,
但是逗号表达式的值是最后一个语句的值,
所以结果k将是y的值
woodcord 2005-01-13
  • 打赏
  • 举报
回复
逗号表达式不是取最左边的一个的值吗?怎么会是右边的一个呢??
CMyMfc 2005-01-13
  • 打赏
  • 举报
回复
k = (x++, y++);
(x++, y++)为逗号表达式, 它的值为右边的值,即y++
y++为先用y, 然后给y加1
因此k = y++
k = 10
lovefly_fanny 2005-01-13
  • 打赏
  • 举报
回复
()优先级这边最高,先执行逗号运算符
结果是y++,再是赋值表达式,k最后就是y咯

69,371

社区成员

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

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