c语言自增自减5运算符详解,巧用C语言中的自增自减运算符
黃建瓊
摘要:自增自減運算符在C語言的編程過程中經常用到,具有重要的作用,而靈活使用自增自減運算符則是個難點。該文從幾個例子入手,觀察運行的結果,對結果進行分析,最后得出結論。以期能使初學者避重就輕,從而熟練掌握自增自減運算符。
關鍵詞:C語言;自增自減運算符;表達式;函數
中圖分類號:TP301文獻標識碼:A文章編號:1009-3044(2010)11-2631-02
Skillfully Apply the Autoincrement and Autodecrement Operators in the C Programming Language
HUANG Jian-qiong
(Fuzhou Technical College of Foreign Studies, Fuzhou 350018, China)
Abstract: Autoincrement and autodecrement operators in the C programming language frequently used process has an important role, while the flexible use of autoincrement and autodecrement operators is a difficult. In this paper, a few examples to start to observe the operation results, the results were analyzed, the final conclusion. With a view to enable the novice takes the easy way to master the autoincrement and autodecrement operators.
Key words: C programming language; increment and decrement operators; expression; function
C語言功能強大,使用靈活,是初學者的很好的入門語言。而C語言中規則繁多、運算符豐富,特別是含有自增自減運算符的同一個表達式在不同情況下具有不同的值,讓許多初學者感到困難。本文以TURBO C為運行環境,從示例入手,由淺入深,巧析自增自減運算符的使用。
1 自增自減運算符的功能
自增自減運算符的符號分別為“++”和“--”,其作用是使變量的值增1或減1,它的操作方法又分為兩種,即運算符在變量前和運算符在變量后,本文為了說明方便,統一用前自增(前自減)或后自增(后自減)來引用。
例1: ++i,i++(在使用之前,使i的值加1)
這里,++ i和i++的作用相當于i =i+1。但++ i和i++出現在表達式或語句中是有區別的。
例2:int i=3,j=3,m,n;
m=i++;(i的值賦給m,m的值為3,之后i加1,值為4)
n=++j; (j加1,值為4,4賦給n,n的值為4)
當“++”在后時,先使用i的值,再執行i=i+1;當“++”在前時,先執行j=j+1,再使用j的值。所以m和n的結果分別是3和4。
2 自增自減運算符在賦值表達式中的應用
例3:main()
{ int i=3,a;
a=(++i)+(i--)+i;
printf("a=%d,i=%d
",a,i);}
運行程序,輸出結果為a=12,i=3。
分析:先計算++i,i的值變為4,右邊三個i均取4, a的值為4+4+4=12,最后i減1變為3。
例4:main()
{ int i=3,a;
a=(++i)+(i--)+(++i)+i;
printf("a=%d,i=%d
",a,i);}
運行程序,輸出結果為a=20,i=4。
分析:先計算兩個++i,i的值變為5,右邊四個i均取5, a的值為5+5+5+5=20,最后i減1變為4。
根據以上兩個例子及眾多的實驗,在涉及自增自減的賦值表達式運算中,筆者總結出如下計算規律:1) 碰到前自增自減的情況時,先計算前自增自減表達式;2) 統一處理整個表達式,求解;3) 最后進行后自增自減運算。
例5:main()
{ int n=4,m;
m=(++n)+(--n)+(++n)+(++n)+(n--)+n;
printf("m=%d,n=%d
",m,n);}
運行程序,輸出結果為m=36,n=5。
根據以上結論進行推導:1)計算(++n)、(--n)、(++n)和(++n),得出n=6;2)m=6+6+6+6+6+6,等于36;3)計算n--,n等于5。
例6:main()
{ i=3;
i=(++i)+(i--)+i;
printf("i=%d
",i);}
運行程序,輸出結果為i=11。
根據以上結論推導:1)計算++i,得出i=4;2)i=4+4+4,等于12;3)計算i--,i等于11。
3 自增自減運算符在printf函數中的應用
例7:main()
{ int i=3;
printf("a=%d
", (++i)+(i--)+i);}
運行程序,輸出結果為a=11。
觀察例7和例3,例7是由例3修改而來的。在例3中,(++i)+(i--)+i是放在賦值表達式中,而例7中(++i)+(i--)+i是放在printf函數中作為參數,而結果卻不一樣。這說明自增自減運算符在賦值表達式和printf函數中的應用是不一樣的。
分析:先計算++i,i的值變為4,表達式變為4+(i--)+i;接著前兩項相加結果為8+i,i變為3;最后計算8+3,等于11。
例8:main()
{ int i=3;
printf("%d
", (i++)+(i++)+(i++));}
運行程序,輸出結果12。
分析:先計算表達式,變為3+(i++)+(i++),i的值變為4;接著前兩項相加,表達式變為3+4+(i++),即7+(i++),i的值變為5;最后計算整個表達式的值為7+5,等于12,i的值為6。
例9:main()
{int i=3;
printf("%d
", (++i)+( ++i)+( ++i));}
運行程序,輸出結果a=15。
計算的過程和上例一樣,按照自左向右的規則,i的值依次為4、5、6,表達式的值為4+5+6=15
由上例7~例9及大量的實驗,可以歸納如下:當自增自減表達式作為printf函數的參數時,按自左向右的原則,依次計算得出結果。
例10:main()
{int i=3;
printf("%d
", (++i)+(i++)+( ++i));}
運行程序,輸出結果14。
運用上述結論,不難推出i的結果為6,表達式的結果為4+4+6,即14。
4 小結
自增自減運算符在編程過程中經常用到,靈活的使用它,可以簡化編程語句。而它在不同地方、不同編譯環境下的實現過程不一,這就要求使用者在使用時要倍加小心。此外,對于初學者一定要勤學多問、多實踐。
參考文獻:
[1] 譚浩強.C程序設計[M].3版.北京:清華大學出版社,2005.
[2] 譚浩強,張基溫.C語言程序設計教程[M].3版.北京:高等教育出版社,2006.
[3] 張莉.C程序設計教程[M].北京:電子工業出版社,2000.
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的c语言自增自减5运算符详解,巧用C语言中的自增自减运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 随机迷宫 c语言思路,[原创]递归随机迷
- 下一篇: 工业工程专业C语言,工欲善其事必先利其器