本人初学C语言,知道a = b++是b先给a赋值,a再自增加一。但还是有这样一个疑问,根据C语言运算符优先级,++的优先级远大于=,为什么不先++再赋值呢?还有如果我把语句改成a = (b++),结果还是不变,()的优先级不是更高,不应该先算括号里面的么?求大神解释,谢谢!!!
C语言a = b++问题
实际上a=b++;可写为a=b;b=b+1;所以语句改成a = (b++)是没有任何区别。c语言规定后加,如果在表达式中,则一定是先完成表达式的计算,再进行自加。就是我们经常在教学中给学生讲的“先操作,在自加”,而前加则是“先自加,再操作”。
C语言中,a=b++是怎么算的,是不是先算a=b,然后b再加1
是的,a=b++相当于a=b,b=b+1;如果是a=++b就相当于b=b+1,a=b;
c语言为什么a+= b加一之后还要加一呢?
首先,b++表示对b做自加运算,我们用c代替,c=b++;然后,a+=b++ 等于 a+=c,即a=a+c,也就是说“==”之前部分是给a赋值的,我们用d代替,即d=a+c;最后是一个逻辑判断d==0,也就是判断前面计算出来的a是否等于0.这里要注意的一个地方是b++,不是++b,也就是说在当前这一次判断...
c语言中int a,b=1; a=(b++)+(++b)-(--b);,为什么a的值是1,最好把过程...
所以,a=1+3-2=2,b=2。下图是验证:所以,应该是答案错了。
C语言语法问题:a =( c++,b++) 啥意思?
然后计算++,也就是c和b分别自加。(注意)然后谈论逗号运算符,没有意义,就是从左到右。所以最后赋值给a的是b++。前面提到一个注意就是,虽然b自加了,但是他的写法是 b++而不是++b,意义上是先使用后自加。所以赋值给a的值是当前的b的值,这一行指令结束以后,b自身的值才会++。这个问...
c语言赋值表达式a=b++=c=7是对的还是错的
这太明显了,肯定是错的啊。后置++可以看成一个函数 type operator++(int){ type temp = *this;++*this;return temp;} 返回的不是引用,所以不是左值。这个过程也很好的解释了i++和++i的区别。祝好
c语言 c=a+=b++ 怎么算??
c语言的运算是从右到左的。在这里我们可以先赋两个个值t1,t2,先把b++的值赋给t1,然后就是计算a+=t1,这就是把a+t把1的值再赋给t2,最后结果就是c=t2,即t2赋给c。所以综合起来就是c=a+(b+1)
C语言中语句a+=b++是什么意思
++ 的意思是变量自加1,如a=1;a++;a的值是2,在c中,++有前置和后置如 ++a;a++;,单独使用的时候是没有区别的,都是自加1,在有运算时就有区别了,前置的++是自加后才参与运算,后置的++是参与运算后在自加1。如题的画,假定a=1,b=2,a+=b++的意思就是b=2先参与a+=b运算a=3...
谁知道c语言中a=b++ + b ++的程序计算过程,求告知
ain() { int a,b,c; scanf("%d,%d",&a,&b); c=a+b; printf("%d+%d=%d",a,b,c); }
C语言中a=b++和a=++b有区别吗
有区别 a = b++ (后加)其实是相当于 a = b b = b + 1 a = ++b (先加)则是相当于 b = b + 1 a = b