关于变量的各种运算自增(自减)总结:

我们以i++i=3)为例子:

我们知道i变量的值存在栈中(我们以局部变量为例),它占用4个字节的内存(32位机),自加就是将变量i这个内存的值加1再存入这个内存中。

1.

i++++i运算之后,i的值都为4,但是表达式i++的值为3++i的值为4

i++是先取i的值作为表达式的值,再自加;++i是先自加,此时i的值为4,再将i的值作为表达式的值。

2.i++*i++

此表达式的值为9

根据优先级,先i*i,然后,两次i++i++,两个i变量时同一块内存。最后i的值为5

3.i++*++i

此表达式的值为16

先‘*’右边的i自加,此时i的值为4,然后i*i,最后i再自加,最后i的值为5

4.++i*++i

此表达式的值为25

*’两边的i先自加,此时i的值为5,然后再i*i

自减运算也同理。

附:验证程序如下

#include<stdio.h>
  
  
  
  int main()
  {
  
  	int i;
  		
  	int b;
  
  
  
  	i=3;
  	printf("%d %d\n",i++*i++,i);//3*3
  
  	i=3;
  	printf("%d %d\n",i++*++i,i);//4*4
  
  	i=3;
  	printf("%d %d\n",++i*++i,i);//5*5
  
  
  	
  }

程序运行结果:




版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/will1990/p/4951543.html