C中表达式的执行逻辑是啥? [复制]

Posted

技术标签:

【中文标题】C中表达式的执行逻辑是啥? [复制]【英文标题】:What is the execution logic of the expression in C? [duplicate]C中表达式的执行逻辑是什么? [复制] 【发布时间】:2017-08-21 04:33:03 【问题描述】:

假设我有几个 C 中的表达式。提供不同的输出。

int i =2,j;
j= i + (2,3,4,5);
printf("%d %d", i,j);
//Output= 2 7

 j= i + 2,3,4,5;
 printf("%d %d", i,j);
 //Output 2 4

在带有和不带有括号的表达式中如何执行,给出不同的输出。

【问题讨论】:

【参考方案1】:

Comma 运算符通过计算所有表达式并返回最后一个表达式来工作。

j= i + (2,3,4,5);

变成

j= i + (5); //j=7

在第二个表达式中赋值运算符优先于逗号运算符,所以

j= i + 2,3,4,5;

变成

(j= i + 2),3,4,5; //j=4

【讨论】:

以上是关于C中表达式的执行逻辑是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

C中赋值表达式的结果是啥? [复制]

c语言中以rw1_2.c保存是啥意思

C语言问题 赋值表达式返回值是啥?比如j=0这个表达式的返回值是啥?

c语言问题 if(!event_p){}这里的!是啥意思。如果写项目书,iutput改怎么写?

c语言中赋值表达式的值是啥,就比如关系表达式的值是一个逻辑值

js 里面的 "" 是啥意思