鱼C论坛

 找回密码
 立即注册
查看: 201|回复: 6

[已解决]逗号运算符问题

[复制链接]
最佳答案
0 
发表于 2018-5-15 20:13:38 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
5~3TA4$IIOW{~STJT33[J`9.png
如图,甲鱼老师说逗号运算符号表示最后一个表达式的结果。
那这个y应该等于b+c嘛?
为什么等于6啊?
二楼上运行出来结果。
最佳答案
2018-5-15 20:23:55
运算符优先级问题
https://www.cnblogs.com/hnrainll/archive/2011/08/03/2126660.html
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a = 2, b = 4, c = 6, x, y;
  5.        
  6.         y = (x = a + b), (b + c);
  7.         printf("y=%d, x=%d\n", y, x);

  8.         ( y = (x = a + b) ), (b + c);
  9.         printf("y=%d, x=%d\n", y, x);


  10.         y = ( (x = a + b), (b + c) );
  11.         printf("y=%d, x=%d\n", y, x);
  12.        
  13.         return 0;
  14. }
复制代码

  1. y=6, x=6
  2. y=6, x=6
  3. y=10, x=6
  4. 请按任意键继续. . .
复制代码
最佳答案
0 
 楼主| 发表于 2018-5-15 20:14:50 | 显示全部楼层
如图
F$`[B1W2[]D[QT12XZ%]}E6.png
最佳答案
374 
发表于 2018-5-15 20:23:55 | 显示全部楼层    本楼为最佳答案   
运算符优先级问题
https://www.cnblogs.com/hnrainll/archive/2011/08/03/2126660.html
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a = 2, b = 4, c = 6, x, y;
  5.        
  6.         y = (x = a + b), (b + c);
  7.         printf("y=%d, x=%d\n", y, x);

  8.         ( y = (x = a + b) ), (b + c);
  9.         printf("y=%d, x=%d\n", y, x);


  10.         y = ( (x = a + b), (b + c) );
  11.         printf("y=%d, x=%d\n", y, x);
  12.        
  13.         return 0;
  14. }
复制代码

  1. y=6, x=6
  2. y=6, x=6
  3. y=10, x=6
  4. 请按任意键继续. . .
复制代码
最佳答案
374 
发表于 2018-5-15 20:26:13 | 显示全部楼层
360截图17860605120110134.png
最佳答案
0 
 楼主| 发表于 2018-5-15 20:33:02 | 显示全部楼层

好的 ,,明白了
最佳答案
0 
 楼主| 发表于 2018-5-15 20:42:38 | 显示全部楼层
谢谢
最佳答案
0 
发表于 2018-5-16 11:37:41 | 显示全部楼层
老师那集视频给出的例子是错的,少了一个括号,运算优先级的问题,赋值运算优与逗号运算符
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-21 08:39

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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