b-=a和b=-a的区别
时间: 2024-05-17 10:14:14 浏览: 17
区别在于运算符的不同。
- `b-=a` 表示将变量 b 的值减去变量 a 的值,并将结果赋给变量 b。这是一个复合赋值运算符,与 `b = b - a` 等效。
- `b=-a` 表示将变量 a 的相反数赋给变量 b。注意到这里的 `=` 是赋值运算符,而 `-` 是取相反数的运算符。
因此,`b-=a` 是将 b 减去 a 的值,并将结果赋给 b,而 `b=-a` 则是将 a 的相反数赋给 b。
相关问题
int a,b; a=b=2; a += a += a-a; b -= b -= b *=b; printf("a=%d,b=%d\n",a,b); return 0;
根据给定的代码,我们来逐步解析a和b的值变化过程:
首先,我们有int a, b;,声明了两个整型变量a和b。
然后,a=b=2;,将a和b都赋值为2。
接下来,a += a += a-a;,这个表达式可以拆分为两个部分:
1. a += a-a;,先计算a-a的结果为0,然后将a与0相加,所以a的值不变,仍为2。
2. a += 2;,再将a与2相加,所以a的值变为4。
再然后,b -= b -= b *= b;同样可以拆分为两个部分:
1. b *= b;,先计算b*b的结果为4,然后将b赋值为4。
2. b -= 4;再将b与4相减,所以b的值变为0。
最后,printf("a=%d,b=%d\n",a,b);会输出a=4,b=0。
回答完问题后,我提供以下相关问题:
1. 请解释一下赋值运算符和复合赋值运算符的区别是什么?
2. 请解释一下表达式中的自增运算符和自减运算符的作用是什么?
3. 请解释一下printf函数的作用和使用方法。
int a=128,b=256;表达式a=b--==255的值为
表达式a=b--==255的值为0。
解析:
根据C++的运算符优先级,后缀自减运算符(--)的优先级高于相等运算符(==)。因此,表达式b--会先执行自减操作,将b的值减1,然后再与255进行相等比较。
首先,b的初始值为256,执行自减操作后,b的值变为255。然后,将255与255进行相等比较,结果为真(即1)。
接着,将1与a进行相等比较。a的初始值为128,与1进行相等比较时,结果为假(即0)。
因此,表达式a=b--==255的值为0。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)