C语言高级编程:i++与++i区别
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                C语言高级编程:i++与++i区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                Ubuntu版本:ubuntu-gnome-16.04-desktop-amd64,gnome版
gcc:gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
-----------------------------------------------------------------------------------
?
對于++j:當一行表達式中的++j全部計算完畢之后,再把表達式中的所有j全部替換成更新之后的值。
對于j++:盡量不要在同一個表達式中使用了j++后再使用含j的表達式,結果可能因編譯器不同而不同。
?
1. a[j++]=j++;
void main(){int j = 0; int a[5] = {5,5,5,5,5}; a[j++]=j++;printf("j = %d\n", j ); for(int i = 0; i < 5; i++) printf("a[%d] = %d\n", i, a[i] );}結果:a[0] = 1, j = 2
?
2. a[j++] = j;
void main(){int j = 0; int a[5] = {5,5,5,5,5}; a[j++] = j;printf("j = %d\n", j ); for(int i = 0; i < 5; i++)printf("a[%d] = %d\n", i, a[i] );}結果:a[0] = 1, j = 1
?
3. a[j] = j ++;
void main(){int j = 0; int a[5] = {5,5,5,5,5}; a[j] = j ++;printf("j = %d\n", j ); for(int i = 0; i < 5; i++)printf("a[%d] = %d\n", i, a[i] );}結果:a[1] = 0, j = 1
?
4. a[++j] = ++j;
void main(){int j = 0; int a[5] = {5,5,5,5,5}; a[++j] = ++j;printf("j = %d\n", j ); for(int i = 0; i < 5; i++)printf("a[%d] = %d\n", i, a[i] );}結果:a[2] = 2, j = 2
?
5. a[++j] = j;
void main(){int j = 0; int a[5] = {5,5,5,5,5}; a[++j] = j;printf("j = %d\n", j ); for(int i = 0; i < 5; i++)printf("a[%d] = %d\n", i, a[i] );}結果:a[1] = 1, j = 1
?
6. a[j] = ++j;
void main(){int j = 0; int a[5] = {5,5,5,5,5}; a[j] = ++j;printf("j = %d\n", j ); for(int i = 0; i < 5; i++)printf("a[%d] = %d\n", i, a[i] );}結果:a[1] = 1, j = 1
?
總結
以上是生活随笔為你收集整理的C语言高级编程:i++与++i区别的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Linux dbm轻量级数据库介绍与使用
- 下一篇: 派拉蒙新片《龙与地下城》预告发布:五大职
