C语言中: int x,a,b; x=(a=3,b=++a); x为什么等于4

如题所述

(a=3,b=++a)是逗号表达式,计算机会顺序执行其中的语句,整个表达式是最后一个语句的计算结果
先执行a=3;现在变量a的值为3
然后执行a++;由于++出现在变量a前面,所以这个自加运算会在给变量b赋值之前执行完毕
接着执行b=a;则最后一个语句的结果就是b的值
最后执行x=b;所以x的值是4
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-10-09
逗号表达式,顺序求值,表达式为最后一个表达式的值,即x为b的值,而b的值是++a的值,a是3,前加加就是先加变为4,赋给b,当然是4了,b是4,x就是4
第2个回答  2016-10-09
括号内,从左到右运算 a=3了,,,然后++a是4,再赋给b,,,,最后x=4

~

C语言中: int x,a,b; x=(a=3,b=++a); x为什么等于4
先执行a=3;现在变量a的值为3 然后执行a++;由于++出现在变量a前面,所以这个自加运算会在给变量b赋值之前执行完毕 接着执行b=a;则最后一个语句的结果就是b的值 最后执行x=b;所以x的值是4

在C语言中-19%4为什么等于-3?
C语言中: int x,a,b; x=(a=3,b=++a); x为什么等于4 (a=3,b=++a)是逗号表示式,计算机会顺序执行其中的语句,整个表示式是最后一个语句的计算结果 先执行a=3;现在变数a的值为3 然后执行a++;由于++出现在变数a前面,所以这个自加运算会在给变数b赋值之前执行完毕 接着执行b=a;...

语句x=(a=3,b=++a);x等于多少,能详细点说明运行过程麽
最后执行x=(a=3,b=++a),因为(a=3,b=++a)的值是b,此处相当于将b赋值给x。通过先前的分析知道b此时的值为4,因此x最后也等于4。

两道C语言题目,求答案和解析,谢谢~
x=(a=3,b=++a);1)执行a=3,此时a值为3;2)执行++a,此时a值为4;3)执行b=++a,此时b值为4,a值为4;4)此时逗号表达式值为4,执行x=4,此时x值为4,a值为4,b值为4。include <stdio.h>#include <stdlib.h>int main (void) {int x,a,b;x=(a=3,b=++a);printf ("x...

C语言b=(a++)+(++a)结果为什么为4?
b = (a++) + (++a)首先a=1; 第一个执行(a++) , 因为后面有个加法, 所以此时用于后面加法的数应该是1, 而执行了这句之后a=2, 在执行后面的(++a) ,因为前面有个加法 此时应该是先执行加1之后在执行前面的加法,所以此时a=3, 在和前面的1执行加法,在赋值给b 所以b=1+3...

这段代码中的变量b为什么输出等于4?
c在进行逻辑判断的时候,遇到可以结束的逻辑判断就不在进行判断了,就是在判断(++a<0)&&!(--b<=0)时,因为(++a<0)是false 所以无论!(--b<=0)是true还是false都不影响结果就不执行(--b<=0)的判断了,所有直接输出b=4

c语言中 当上一步x++没有执行的时候下一步的x会加1吗?
x++\/\/先取值,再+1;++x\/\/先+1,再取值;int a,b,x=3;a=x++;printf("%d",a);\/\/a的值为3;b=++x;printf("%d",b);\/\/b的值为4;

c语言中X=3,X++等于什么?
X=3,X++ 是由逗号组成的表达式,该表达式的值为3 但该表达式执行结束后,X的值就成了4。原因: 因为X++ 自增在后面,先将X的值作为表达式的值,然后X再自己增加一个。

C语言a=011,b=++a;为什么b的值是10
因为你在前面加了‘0’,于是编译器默认把它当成八进制的数,八进制的“011“相当于十进制的“9”,于是++a是10,b也就是10,。你把"011"改成“11”,b的值就是12……

初学C语言 a=3,b=a++,那么算出来得a,b各是多少? 求助啊
a是3 a++的话,a++是3,a变成4 既然是把a++赋值给b,那么b也是3 所以ab分别是4和3

相似回答