c语言问题,执行第二个a++,我认为b是3,为什么答案是2?请帮我解析一下,谢谢

如题所述

因为 b=1+1;
首先,强调一下,大多数语句运算都有返回值,a++自加运算成功返回值为1,因此,两次自加(a++,b++)都返回1,b 就等于1+1=2了。追问

第一次a++到第二次a++,第二个a不就已经是2?

追答

不是这样的,a++是一个语句 b=(a++)+(a++)你没有猜测过括号的作用么,括号的意思就是先自加运算,再返回自加运算的返回值,运算的返回值一般是1代表语句已经成功执行。如果是 b=a++ + a++和你想象的就应该是一样的了~

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言问题,执行第二个a++,我认为b是3,为什么答案是2?请帮我解析一下...
因为 b=1+1;首先,强调一下,大多数语句运算都有返回值,a++自加运算成功返回值为1,因此,两次自加(a++,b++)都返回1,b 就等于1+1=2了。

一道C语言很简单的题目,懂C语言的进来帮忙解下
首先要知道? :这是一个三目运算符,如 (表达式)? x : y, 意思是说如果表达式是正确的,那么就选择x,如果错误的就选择y。那我们看这里,可以分成三部分(a++<b) ? (a++):(c<d?a++:d)。而后面的(c<d?a++:d)又可以分成三部分(c<d) ? (a++):(d)。我们先看第一个式子...

C语言,为什么第三题答案是3?我觉得是12,请给过程
再取a[2]的值,也就是3了,最后左边的1 * 右边的3,等于3。

C语言:下面程序运行后的输出结果是2,为什么?
if(s[i]>='a'&&s[i]<='z') n++;\/\/此循环在统计字符串s中的小写字母个数,因此为2 printf("%d\\n",n);\/\/输出小写字母个数n }

计算机 c语言,已知a=2,执行语句b=a++后,a,b的值分别为a=3,b=2,而...
因为a++是在当前运算结束后将a的值+1 ++a是在当前运算开始前将a的值+1 就a=2,b=a++而言 在将a的值赋给b之后,a++才会被执行 也就是说b先获得了a的值,之后a才进行了++的操作 如果希望计算之后a=b=3,需要改成a=2,b=++a

c语言问题a=2,b=a*++b结果是2为什么
++的优先级高于*号。所以b先自加1后再和a相乘的,所以最后就是b=2*1=2 了

C语言选择题(3道题),帮忙解答一下,谢谢!
你好:第一题:先执行循环体:b-=a; a++;b=b-a=10-1=9,a=2,再判断条件:b--<0 b=9>0 然后b-- (注意无论判断条件是否满足,都执行),b=8 第二题:答案错了,应选D 程序应该这么看:int a=3,b=2,c=1;int x=10,y=20;if(a<b) 一开始a>b就不满足条件,所以下面的不...

在C语言中,b++=2是什么意思。请知者告知。
这是c语言考试里的一道题,答案是1,3,3,其实是这样的先判断b是否等于2,然后再执行b++

谁能帮我解决下面的C语言问题啊,最好能说明解析过程。
解析:执行switch(a%3),由于a%3=0,满足case 0,因此执行其后语句m++,接着执行break语句,由于break语句有跳出switch语句的功能,因此在此处跳出switch语句,执行printf语句,m自加过一次,故输出结果:1;2、结果:**0***2 解析:道理同第1题,执行switch(a),满足条件进入switch(b),接...

c语言问题,请给出详细的解析,谢谢
for(i=0;i<4;i++) \/\/当i = 0;j = 1时 a[0][0]为o, a[1][0]为t,for(j=i+1;j<5;j++)if(a[i][0]>a[j][0]) \/\/单词首字母排序 小的向前移动 { t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;} puts(a[1]);} 第一次j交换结果:{"fne","...

相似回答
大家正在搜