在c语言中使用复合运算符计算a+=a*=a/=a-6,是怎么计算的?
a / (a – 6);a = a a;a = a + a;在gcc下输入10,结果是8,与上面的代码相符,VC2008下也是8。
a+=a*=a/=a-6; 此时a=10 a+=a*=a/=4; 此时a=10 a+=a*=2; 此时a=2 a+=4; 此时a=4 最后a=8 在赋值运算符当中,有一类C/C++独有的复合赋值运算符。
计算的顺序是右向左就是计算分部1。a=a/(a-6) 2。a=a*a 3。
A+=1,首先求得赋值号左侧的表达式A的值,将这个值加上1,然后写回A中,表达式A只被求值了一次。这是理想的情况,实际中现代编译器都非常智能,在开启编译优化时,A=A+1这样的语句将被直接优化为A+=1甚至是A++。
这个的学名叫 复合赋值运算符 a+=-6 相当于 a=a+(-6);等号右边的值当成一个整体 类似的还有*=,-=,|=,等等一系列的操作,转换方式都是一样的。
赋值是从右到左运行。先计算a*a=9,此时a=3,没变。然后计算a-=9,此时a=-6,a值改变。最后计算a+=-6,a=-12。a的最终值为-12。
C语言里X-=1是什么意思?
x++ 好简单,即系变量加一。例如: If x=3 x++ 即系 x 会将自己加一,即系 x=4 。 –x 同"++x"一样道理,但由加变减(递减-Decrement); 简单而言,"–x"即系"先减一,再减 x"。
x = -1,执行第一个x++后,x值为0,逻辑值为false,所以要执行第二个++x,此时,x = 1,逻辑值为真,不再执行第三个++x,故,最后x的值为1。
x=1是赋值语句;此时x就是1 而x==1,是用在if(x==1)等判断句中,看x是不是等于1,如果等于1,则为真。
c语言,复合赋值运算符
1、C语言中+=是复合赋值运算符。复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。即:a+=1;等价于a=a+1。
2、这些是C/C++独有的复合赋值运算符,结合方向,从右向左。是一种缩写形式,使得对变量的改变更为简洁,更有效率。
3、在C语言中/=是复合赋值运算符的一种,是两种运算(除、赋值)的结合,x/=10等同于x=x/10。先进行左侧表达式除以右侧表达式的除法运算。然后进行把结果赋值给左侧表达式的赋值运算。
4、+=是C语言中的一种复合赋值运算符,a+=b 等价于 a=a+b,是后者的一种简化性写法,并且,其优先级(即:同一个表达式中存在多种运算符时,不同运算符之间的运算顺序)与 =相同。类似的还有 +=,*=,/= 。
5、在赋值运算符当中,还有一类C/C++独有的复合赋值运算符。它们实际上是一种缩写形式,使得对变量的改变更为简洁。Total=Total+3;乍一看这行代码,似乎有问题,这是不可能成立的。其实还是老样子,'='是赋值不是等于。
6、在C语言中a-=b+c应该是a=a-(b+c)-=的意思: -=是C语言中的一个复合运算符。 -=为双目运算, 形式为:A-=B表示含义为:A=A-B C语言中复合赋值运算符 := 的意思是左移等。
在C语言中a-=b+c应该是a=a-(b+c)还是a=a-b+c?
1、建议在刚开始学习C语言,比较别扭时,可以这样:碰见-= ,+=,%=这类的比如a-=b;先看运算符左边的是a,在纸上写下a=a,然后看到是-=,就在a=a后写成a=a-,最后写出a=a-b。
2、a-=a的意思为a=a-a,先用a减a,然后再将得到的结果赋值给a。-=实际上是一种缩写形式,使得对变量的改变更为简洁。
3、首先因为“==”号比“=”的优先级高,所以先执行b==c,明显b等2,c等3两者不等,所以为0(逻辑运算,当b不等c时这个等式的值就为假即是0),再执行a=0,就把0值赋给了a。