教你解决++i和i++困惑

来源:百度文库 编辑:神马文学网 时间:2024/04/30 10:02:07
教你解决++i和i++困惑
重新复习c语言,看到函数这张,有个小问题,如下几个程序: 
程序一: 
main() 

int a=0; 
printf("a=%d\n",a++); 

/*结果a=0;*/ 
程序二: 
main() 

int a=0; 
printf("a=%d\n",++a); 

/*结果a=1;*/ 
程序三: 
main() 

int a=0; 
a++;  /* 或者++a */ 
printf("a=%d\n",++a); 

/*结果a=2;*/ 
程序四: 
main() 

int a=0; 
a++;  /* 或者++a */ 
printf("a=%d\n",a++); 

/*结果a=1;*/ 
程序五: 
main() 

int a=0; 
a++;  /* 或者++a */ 
printf("a=%d\n",a); 

/*结果a=1;*/ 
在这几个程序里面我觉得(尤其是第五个)应该a++和++a出来的结果是0,1呀!!怎么全是一呢? 
请assiss等大哥,稍作讲解! 
我这边慢慢调试找找感觉,谢了~~ 
a++是先用后加, 
++a是先加后用。 
比如 
int a=0; 
printf("%d",++a);先加,a=1,再用,打印出1 
而 
int a=0; 
printf("%d",a++);先用,打印出0,然后再加,a=1. 

但是,这仅仅是++出现在同一个语句的时候才有的问题, 
当a++或++a单独成为一个语句时,没有任何区别。 
比如: 
int a=0; 
a++;//先用a,没什么用,再加,a=1 
再如: 
int a=0; 
++a;//先加,a=1,再用,依然没什么用。  
教你解决++i和i++困惑