鱼C论坛

 找回密码
 立即注册
查看: 4217|回复: 5

初学者求教 括号运算符的问题

[复制链接]
发表于 2012-9-9 22:45:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 weinan622 于 2012-9-10 20:30 编辑

今天看了您的视频教学,第二章第5节讲到逗号运算符的时候,不知道是不是这个地方讲的不对呢,假如
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);
这个情况下  y是不等于b+c的,y还是等于a+b的。但是视频中说 y是等于b+c的。
只有给y=(x=a+b),(b+c)加上括号变成y=((x=a+b),(b+c)),y才等于b+c呢,我初学者,不知道对不对,请指教。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-10 07:09:39 | 显示全部楼层
一共有十五个优先级:
1   ()  []  .  ->
2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof
3   * / %
4   + -
5   >> <<  
6   > >= < <=
7   == !=   
8   &  
9   ^   
10  |   
11  &&
12  ||
13  ?:
14   =  +=  -=  *=  /=   %=  |=   ^=   &=   >>=   <<=
15  ,
结合性:2   13  14  是从右至左   其他都是  从左至右有问题可以在交流的
逗号运算符的优先级是最低的,而且是由左向右依次计算的,取最后一个值。要是还没明白接着回复!


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-10 08:44:48 | 显示全部楼层
不对啊,y仍然是等于a+b
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-10 13:09:24 | 显示全部楼层
y=(x=a+b),(b+c);
由于=的优先级大于,   y还是等于a+b,如果y=((x=a+b),(b+c));那么y=b+c
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-9-10 20:30:42 | 显示全部楼层

那就应该是视频上讲错了
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-9-10 20:33:02 | 显示全部楼层
靓古∑2012 发表于 2012-9-10 13:09
y=(x=a+b),(b+c);
由于=的优先级大于,   y还是等于a+b,如果y=((x=a+b),(b+c));那么y=b+c

谢谢啦,我确定是视频上讲错了啊
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-15 02:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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