C語言 i++和++i的區別


i++和++i的區別

i++和++i都是c語言里的自增,但是它們自增的順序不同

那么,它們到底有什么區別呢?

 

話不多說,直接上代碼

 

//++i和i++的區別 
#include <stdio.h>

int main()
{
    //
    int i=2; 
    i++;
    printf("%d\n",i);      //3
    
    //
    int i1=2;
    ++i1;
    printf("%d\n",i1);    //3
   
    //
    int i2=2;
    int j2 = i2++;           
    printf("%d\n",j2);      //2    因為在給某一個變量賦值的時候,i++ 就是先自增,返回增加之前的值。
    printf("%d\n",i2);     //3
    
    //
    int i3=2;
    int j3 = ++i3;
    printf("%d\n",j3);      //3    先增加,返回增加之后的值。 
    printf("%d\n",i3);      //3
    
    
    //
    int i4=2;
    printf("%d\n",i4++);   //2
    
    //
    int i5=2;
    printf("%d\n",++i5);    //3 
    
    
    //
    int a=0,b=9;
    a++&&b++;
    printf("%d\n",b);    //9   因為a++先增加返回增加之前的值等於0  0&&0和0&&1都得0,所以后面不執行,所以不增加 
    
    //
    int a1=0,b1=9;
    ++a1&&b1++;
    printf("%d\n",b1);     //10    ++a1先增加返回增加之后的值   
    
    
     
    /*
       總結來說, i++和++i 在給變量賦值(例③和④)或者在打印輸出語句中直接使用(例如⑤和⑥)遵循  
                                                                                        i++ 先增加 返回增加之前的值 
                                                                                        ++i 先增加 返回增加之后的值
                                                                                         
                                                                                         
       而當i++和++i 單獨出現使用時(例如①和②),無論怎樣都會加1; 
           
     */
    return 0; 
}

我們可以看下控制台輸出的結果

 

   總結來說

i++和++i 在給變量賦值(例③和④)或者在打印輸出語句中直接使用(例如⑤和⑥)遵循  
                                                                         i++ 先增加 返回增加之前的值 
                                                                         ++i 先增加 返回增加之后的值
                                                                                         
                                                                                         
而當i++和++i 單獨出現使用時(例如①和②),無論怎樣都會加1; 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM