Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中表达式的执行逻辑是什么?_C_Expression_Execution - Fatal编程技术网

C中表达式的执行逻辑是什么?

C中表达式的执行逻辑是什么?,c,expression,execution,C,Expression,Execution,假设我使用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 带括号和不带括号的表达式中的执行如何给出不同的输出。逗号运算符通过计算所有表达式并返回最后一个表达式来工作 j= i + (2,3,4,5); j= i + 2,3,4,5; 变成 j= i + (5

假设我使用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
带括号和不带括号的表达式中的执行如何给出不同的输出。

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

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

j= i + (5); //j=7
(j= i + 2),3,4,5; //j=4
在第二个表达式中,赋值运算符优先于逗号运算符,因此

变成

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