<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                在這里學習了C中的自增和自減,但是后面學習了前綴和后綴及其混合之后,發現使用不同的編譯器,其中的規則是不一樣的,而且平時我們書寫程序的時候也不會寫這樣復雜的代碼,例如i+++i+++i++等,這樣一方面在可讀性方面很差,另一方面就是在移植性方面,不同的編譯器就會出現不同的結果,所以這樣寫是不理想的。 ~~~ #include <stdio.h> /** * 自增/自減運算的應用 * @brief main * @return */ int main(void) { int a = 5,b,c,i = 10;//變量定義及初始化 //將a賦值給b,然后自增1 b = a++; //b = 5,a = 6 //b先自增1,然后賦值給c c = ++b; //b = 6,c = 6 printf("a = %d,b = %d,c = %d\n",a,b,c); //a=6,b=6,c=6 /** * C函數參數的入棧順序是從右向左的 * 主要是為了支持參數可變長度 * 則下面的輸出為12,11,10 */ printf("i,i++,i++ = %d,%d,%d\n",i,i++,i++); /**輸出i,i++,i++**/ printf("%d\n",++i); //i自增1,然后輸出i 13 i=13 printf("%d\n",--i); //i自減1,然后輸出i 12 i=12 printf("%d\n",i++); //先輸出i,然后i自增1 12 i=13 printf("%d\n",i--); //先輸出i,然后i自減1 13 i=12 printf("%d\n",-i++); //i先取負,然后輸出i,最后i自增1 -12 i=13 printf("%d\n",-i--); //i先取負,然后輸出i,最后i自減1 -13 i=12 /** * 有關于自增/自減問題的總結 */ /*******************/ /* 1:表達式中,一般情況下,是從左向右 */ /* 函數參數中,運算方向是從右向左 */ /******************/ /*******************/ /* 2:后綴,先取值,再自增 */ /******************/ //例子 int m = 5,n; n = m+++m+++m++; //相當于a=(m++) + (m++) + (m++); //但由于是后綴,則先取值運算之后,在進行自增 //所以 n = m + m + m; m++; m++; m++; //所以最后結果 n=15,m=8 printf("n = %d,m = %d",n,m); /*******************/ /* 3:前綴,前兩個自增后取值 */ /* 后面的每個自增后都取值 */ /******************/ //例子 int p,j=5; p = ++j + (++j) + (++j); //則根據規則,前兩個自增之后再取值 //則變化之后 j=7 p = 7 + 7 + (++j); //兩個之后的所有前綴每一個都先自增接著取值 //則 j = 8, p = 7 + 7 +8; // p = 22, j = 8 printf("p = %d,j = %d",p,j); /*******************/ /* 4:前綴,后綴混合情況 */ /******************/ //學到這里我發現這個編譯器不同,最后的結果也是不一樣的,所以感覺很沒有意義 return 0; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看