c语言中(a--)和(--a)的区别
时间: 2024-04-07 13:31:45 浏览: 12
(a--)和(--a)都是C语言中的自减运算符,但是它们的区别在于它们的执行顺序和返回值。
(a--)是后缀自减运算符,它先返回变量a的值,再将a的值减1。也就是说,a在这个表达式中是使用它的旧值进行计算的。
(--a)是前缀自减运算符,它先将变量a的值减1,再返回a的新值。也就是说,a在这个表达式中是使用它的新值进行计算的。
例如,如果a的初始值为5,那么执行a--后,a的值变成4,但表达式的值是5。而执行--a后,a的值变成4,表达式的值也是4。
相关问题
c语言if(--a)和if(a--)区别
这两个if语句的区别在于它们对变量a的值的修改方式不同,以及在判断时的时机不同。
if(--a)是先将a的值减1,然后再判断a是否为0。如果a原来的值为0,则减1后a的值为-1,判断结果为真;如果a原来的值为非0数,则减1后a的值为原来的值减1,判断结果为假。
if(a--)是先判断a是否为0,然后再将a的值减1。如果a原来的值为0,则判断结果为假;如果a原来的值为非0数,则判断结果为真,然后再将a的值减1。
因此,if(--a)和if(a--)的区别在于它们分别对变量a的值进行了减1的操作的时机不同,并且在判断时的结果也有所不同。
C语言中10-(b=a)*-b
这个表达式的运算顺序为:
1. 先计算赋值运算符,将a的值赋给b;
2. 然后计算负号运算符,将-b的值取反;
3. 接着计算乘法运算符,将a和-b相乘;
4. 最后计算减法运算符,将10和上一步的结果相减。
所以,这个表达式的值就是:10 - (a * -b)。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.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)