“(a++ , b>a++&&c>d) ? ++d:a<b”得值为什么?
初学是遇到的一个题目,自己写到环境跑了一遍知道结果为0,也能看懂递增比较和三目运算符部分,但是不知道(a++,b>a++&&c>d)是如何和后面的部分进行比较的,或者说不太理解(a++,b>a++&&c>d)算得逻辑步骤,希望有人能给我详细解释下每一步运算的逻辑是什么样的
大兄弟,你这个就复杂了,(a++ , b>a++&&c>d)这个计算结果在不同的编译平台有所区别,不同平台对C语言定义的后加加处理方法有所不同,比如:一种是在这条语句结束时,才返回后加加的结果
另一种是,在一条语句中,同一个变量两次后加加,第二次后加加,就会在前一个后加加的基础上运算,如:
int a = 0;
t = a++ + a++;
t = 0 + 1;
好了,就这样吧
逗号表达式,从左只有计算,最后返回最右边表达式的结果
你不妨把a,b,c,d的初始值提供出来,否则不好说