鱼C论坛

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

[已解决]一个简单的加减乘除问题,求助啊

[复制链接]
发表于 2018-4-5 18:11:33 | 显示全部楼层 |阅读模式

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

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

x
为什么
        int x;
        printf("%d\n", (x = 4 * 5, x * 5), x + 25);
等于100.
        int x;
        printf("%d\n", ((x = 4 * 5, x * 5), x + 25));
等于45.
最佳答案
2018-4-5 20:11:25
运算符        名称或含义                      使用形式        结合方向        说明

,                 逗号运算符        表达式,表达式,…          左到右        从左向右顺序运算
PS:逗号运算符默认返回最右边的数值

例如 :

int x = (1,2,3,4,5);

x的值为5.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-5 18:28:27 | 显示全部楼层
   printf("%d\n", (x = 4 * 5, x * 5), x + 25); //本来有2个%d的,你给打一个printf("%d,%d\n", (x = 4 * 5, x * 5), x + 25);

(x = 4 * 5, x * 5), x + 25 是2个表达式
起作用的只有 (x = 4 * 5, x * 5)
1,x = 4 * 5;
2,x*5 // 4*5 * 5 用%d输出 意思就是printf("%d\n", 4*5 * 5);



printf("%d\n", ((x = 4 * 5, x * 5), x + 25)); //这里1个%d  ((x = 4 * 5, x * 5), x + 25)
((x = 4 * 5, x * 5), x + 25)语句分来开就是
1,(x=4*5,x *5);
1.1  x*5 //没用的东西
1.2x = 4*5;

2,x +25;    // 4*5 + 25 然后%d输出 意思就是  printf("%d\n",4*5 + 25);

最后 x=4*5 = 20
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2018-4-5 18:56:44 | 显示全部楼层
为什么printf("%d\n", (23 ,45 , 7 ,3 ,45 , 23);
打印的是23呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-5 20:11:25 | 显示全部楼层    本楼为最佳答案   
运算符        名称或含义                      使用形式        结合方向        说明

,                 逗号运算符        表达式,表达式,…          左到右        从左向右顺序运算
PS:逗号运算符默认返回最右边的数值

例如 :

int x = (1,2,3,4,5);

x的值为5.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-4-5 20:53:18 From FishC Mobile | 显示全部楼层
逗号运算符最终的结果是最右边的值

printf的%d占位符直接从后面紧跟着的逗号后面取值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-5 22:56:06 | 显示全部楼层
我也不明白为什么第一个不是45而是100 。printf()函数的函数参数传递方向不是从右向左么,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-5 23:43:05 From FishC Mobile | 显示全部楼层
主要是printf参数和逗号运算符的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 19:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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