i++,i--,++i,--i,-i++和-i--,六种情况的区别


代码如下:


#include <stdio.h> #include <stdlib.h> int main() { int i = 5; printf("%d\n", ++i); printf("%d\n", i++); printf("%d\n", --i); printf("%d\n", i--); printf("%d\n", -i--); printf("%d\n", -i++); i = i++; printf("%d\n", i); i = ++i; printf("%d\n", i); i = i--; printf("%d\n", i); i = --i; printf("%d\n", i); i = -i++; printf("%d\n", i); i = -i--; printf("%d\n", i); system("pause"); }

  

i++,i--​执行结果!!!

  猛的一看,懵了一下,后面想起,是因为++i执行过了,接下来就写一下我最上面原始程序的执行原理!

i++ 优先执行程序,然后执行i+1
++i 优先执行i+1,然后执行程序
--i 优先执行i-1,然后执行程序
i-- 优先执行程序,然后执行i-1
-i++ 取负的优先级比++高,printf("%d\n",-i++);执行程序为:

printf("%d\n",-i);

i++;

-i--

取负的优先级比--高,printf("%d\n",-i--);执行程序为:

printf("%d\n",-i);

i--;

  

  后面我分别注释掉了前面的printf("%d\n",i++);等等的条件做对比!

  

​注释掉++条件之后!
 
 
// printf("%d\n",-i++);与下面程序执行相等

i=5;

printf("%d\n",-i);    //-5
i++;                  //-i=-4


// printf("%d\n",-i--);与下面程序执行相等

i=4;

printf("%d\n",-i);    //-4
i--;                  //-i=-5

 

接下来下面是整个代码的分析;

​整个代码执行结果!

 

    int i = 5;
	printf("%d\n", ++i);   //i+1=6,i
	printf("%d\n", i);     //6
	printf("%d\n", i++);   //i=6,i+1=7
	printf("%d\n", i);     //7
	printf("%d\n", --i);   //i-1=6,i
	printf("%d\n", i);     //6
	printf("%d\n", i--);   //i=6,i-1=5
	printf("%d\n", i);     //5
	printf("%d\n", -i--);  //-i=-5,i-1=4
	printf("%d\n", i);     //4
	printf("%d\n", -i++);  //-i=-4,i+1=5
	printf("%d\n", i);     //5

  

 

 

posted on 2019-08-15 10:48  Aggy梁工  阅读(1026)  评论(0编辑  收藏  举报