int a=128,b=256;表达式a=b--==255的值为
时间: 2024-06-15 09:02:57 浏览: 17
表达式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。
相关问题
int a=-10; unsign int b=20;b>a
根据您提供的信息,变量 a 被赋值为 -10,变量 b 被赋值为 20,并且 b 的类型为无符号整数(unsigned int)。
在比较两个整数时,如果其中一个是有符号整数,另一个是无符号整数,C语言会将有符号整数转换为无符号整数进行比较。
在这种情况下,变量 a 会被转换为无符号整数进行比较。由于无符号整数只能表示非负数,-10 在转换为无符号整数时会变成一个很大的正整数。
因此,根据转换后的值,20 是大于 -10 的。所以表达式 "b > a" 的结果为 true。
int a=b=0为什么不正确
在C语言中,赋值运算符"="的返回值为被赋的值。所以,表达式"a=b=0"的执行顺序是从右至左,即先执行"b=0",然后将"b=0"的返回值0赋给a。但是,由于b未被定义,所以编译器会报错,导致整个表达式无法编译通过。
要让表达式"a=b=0"正确执行,需要先定义变量b,例如:
```
int a, b;
a = b = 0;
```
这样,先将0赋给b,再将b的值0赋给a,代码就可以正常执行了。
相关推荐
![](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)