鱼C论坛

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

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

[复制链接]
发表于 2020-12-21 23:32:53 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
int main()
{
    int a = 2, b = 3, c = 10;

    printf("%d", a=a-b,b=a-b,c=a-b);
   
    return 0;
}

计算结果是3
这个结果怎么得来的?
我觉得应该是-1才对啊
最佳答案
2020-12-22 14:13:15
#include<stdio.h>
int main()
{
    int a = 2, b = 3, c = 10;
    a=a-b
    b=a-b
    c=a-b;
    printf("%d", c);
   
    return 0;
}
分解成这样就容易明白了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-22 11:56:23 | 显示全部楼层
逗号运算取最后一次,printf是自右向左运算,但这个无论左往右还是右往左都是3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 14:13:15 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>
int main()
{
    int a = 2, b = 3, c = 10;
    a=a-b
    b=a-b
    c=a-b;
    printf("%d", c);
   
    return 0;
}
分解成这样就容易明白了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 16:16:35 | 显示全部楼层
控制符只有一个,变量有三个,若如2楼的朋友所说(printf是自右向左运算,我没有去研究过),那 printf()就应该选择了最后赋值的 c = a  -b 的 b 值,事实上,若将 b 赋值几,( int a = 2, b = 4, c = 10; 输出 4)输出就是几。这是在没有常量的情况下,若是有常量,比如:a = a - 1, b = a - b, c = a - b,输出 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 16:17:47 | 显示全部楼层
z5560636 发表于 2020-12-22 14:13
分解成这样就容易明白了。

你分拆后,6行、7行没有分号,编译就出错了,程序运行不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-23 09:29:00 | 显示全部楼层
风过无痕1989 发表于 2020-12-22 16:17
你分拆后,6行、7行没有分号,编译就出错了,程序运行不了

python写习惯了,不好意思。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 09:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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