标题:逗号与运算符优先级问题
取消只看楼主
Dxoad
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-4-16
结帖率:100%
已结贴  问题点数:20 回复次数:2 
逗号与运算符优先级问题
程序代码:
#include<iostream>
int main() {
    int a =10,b,c,t =0,s =100;
    a += 20;
    c = b *= b = a;    //b不是等于零的吗 ,还有运算顺序是什么
    std::cout << a <<" "<< b <<" "<< c <<" "<< t;
}



程序代码:
#include<cstdio>
int main() {
    int a =5;
    printf("%d %d %d",a,a++,a++);
}

这个为什么返回值是 7 6 5 而不是5 5 5



int j = 10,k = 1000;
int i = (k+2,j+100,999+j);
为什么会取到最后一个,这里面的括号有什么作用,不加括号为什么会报错而加了就没问题
逗号起到什么作用



[此贴子已经被作者于2020-4-16 19:05编辑过]

搜索更多相关主题的帖子: 逗号 优先级 运算符 int main 
2020-04-16 18:50
Dxoad
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-4-16
得分:0 
回复 2楼 rjsp
没认真看,,,解决了

[此贴子已经被作者于2020-4-16 22:28编辑过]

2020-04-16 22:04
Dxoad
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-4-16
得分:0 
回复 2楼 rjsp
等一下,dalao请留步,还有一个疑惑
(k+2,j+100,999+j);
k+2和j+100是不是可以忽略,直接看最后一个子表达式
k+2和j+100是不是没有参与运算,如果参与了那他们计算得出的值参加赋值操作了吗(如果中间出现错误数据了,他还会返回最后一个子表达式的值吗)


做题一直很迷,前面的表达式(指k+2和j+100)不知道是否进行处理并参加运算(比如出现x--,--x),是否可以直接忽略看最后一个,还是分情况处理

[此贴子已经被作者于2020-4-16 22:31编辑过]

2020-04-16 22:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501080-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.033706 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved