国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

巧用C語言中的自增自減運算符

2010-07-30 02:57:24黃建瓊
電腦知識與技術(shù) 2010年11期
關(guān)鍵詞:C語言表達式函數(shù)

黃建瓊

摘要:自增自減運算符在C語言的編程過程中經(jīng)常用到,具有重要的作用,而靈活使用自增自減運算符則是個難點。該文從幾個例子入手,觀察運行的結(jié)果,對結(jié)果進行分析,最后得出結(jié)論。以期能使初學(xué)者避重就輕,從而熟練掌握自增自減運算符。

關(guān)鍵詞:C語言;自增自減運算符;表達式;函數(shù)

中圖分類號:TP301文獻標(biāo)識碼: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語言功能強大,使用靈活,是初學(xué)者的很好的入門語言。而C語言中規(guī)則繁多、運算符豐富,特別是含有自增自減運算符的同一個表達式在不同情況下具有不同的值,讓許多初學(xué)者感到困難。本文以TURBO C為運行環(huán)境,從示例入手,由淺入深,巧析自增自減運算符的使用。

1 自增自減運算符的功能

自增自減運算符的符號分別為“++”和“--”,其作用是使變量的值增1或減1,它的操作方法又分為兩種,即運算符在變量前和運算符在變量后,本文為了說明方便,統(tǒng)一用前自增(前自減)或后自增(后自減)來引用。

例1: ++i,i++(在使用之前,使i的值加1)

這里,++ i和i++的作用相當(dāng)于i =i+1。但++ i和i++出現(xiàn)在表達式或語句中是有區(qū)別的。

例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)

當(dāng)“++”在后時,先使用i的值,再執(zhí)行i=i+1;當(dāng)“++”在前時,先執(zhí)行j=j+1,再使用j的值。所以m和n的結(jié)果分別是3和4。

2 自增自減運算符在賦值表達式中的應(yīng)用

例3:main()

{ int i=3,a;

a=(++i)+(i--)+i;

printf("a=%d,i=%d ",a,i);}

運行程序,輸出結(jié)果為a=12,i=3。

分析:先計算++i,i的值變?yōu)?,右邊三個i均取4, a的值為4+4+4=12,最后i減1變?yōu)?。

例4:main()

{ int i=3,a;

a=(++i)+(i--)+(++i)+i;

printf("a=%d,i=%d ",a,i);}

運行程序,輸出結(jié)果為a=20,i=4。

分析:先計算兩個++i,i的值變?yōu)?,右邊四個i均取5, a的值為5+5+5+5=20,最后i減1變?yōu)?。

根據(jù)以上兩個例子及眾多的實驗,在涉及自增自減的賦值表達式運算中,筆者總結(jié)出如下計算規(guī)律:1) 碰到前自增自減的情況時,先計算前自增自減表達式;2) 統(tǒng)一處理整個表達式,求解;3) 最后進行后自增自減運算。

例5:main()

{ int n=4,m;

m=(++n)+(--n)+(++n)+(++n)+(n--)+n;

printf("m=%d,n=%d ",m,n);}

運行程序,輸出結(jié)果為m=36,n=5。

根據(jù)以上結(jié)論進行推導(dǎo):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);}

運行程序,輸出結(jié)果為i=11。

根據(jù)以上結(jié)論推導(dǎo):1)計算++i,得出i=4;2)i=4+4+4,等于12;3)計算i--,i等于11。

3 自增自減運算符在printf函數(shù)中的應(yīng)用

例7:main()

{ int i=3;

printf("a=%d ", (++i)+(i--)+i);}

運行程序,輸出結(jié)果為a=11。

觀察例7和例3,例7是由例3修改而來的。在例3中,(++i)+(i--)+i是放在賦值表達式中,而例7中(++i)+(i--)+i是放在printf函數(shù)中作為參數(shù),而結(jié)果卻不一樣。這說明自增自減運算符在賦值表達式和printf函數(shù)中的應(yīng)用是不一樣的。

分析:先計算++i,i的值變?yōu)?,表達式變?yōu)?+(i--)+i;接著前兩項相加結(jié)果為8+i,i變?yōu)?;最后計算8+3,等于11。

例8:main()

{ int i=3;

printf("%d ", (i++)+(i++)+(i++));}

運行程序,輸出結(jié)果12。

分析:先計算表達式,變?yōu)?+(i++)+(i++),i的值變?yōu)?;接著前兩項相加,表達式變?yōu)?+4+(i++),即7+(i++),i的值變?yōu)?;最后計算整個表達式的值為7+5,等于12,i的值為6。

例9:main()

{int i=3;

printf("%d ", (++i)+( ++i)+( ++i));}

運行程序,輸出結(jié)果a=15。

計算的過程和上例一樣,按照自左向右的規(guī)則,i的值依次為4、5、6,表達式的值為4+5+6=15

由上例7~例9及大量的實驗,可以歸納如下:當(dāng)自增自減表達式作為printf函數(shù)的參數(shù)時,按自左向右的原則,依次計算得出結(jié)果。

例10:main()

{int i=3;

printf("%d ", (++i)+(i++)+( ++i));}

運行程序,輸出結(jié)果14。

運用上述結(jié)論,不難推出i的結(jié)果為6,表達式的結(jié)果為4+4+6,即14。

4 小結(jié)

自增自減運算符在編程過程中經(jīng)常用到,靈活的使用它,可以簡化編程語句。而它在不同地方、不同編譯環(huán)境下的實現(xiàn)過程不一,這就要求使用者在使用時要倍加小心。此外,對于初學(xué)者一定要勤學(xué)多問、多實踐。

參考文獻:

[1] 譚浩強.C程序設(shè)計[M].3版.北京:清華大學(xué)出版社,2005.

[2] 譚浩強,張基溫.C語言程序設(shè)計教程[M].3版.北京:高等教育出版社,2006.

[3] 張莉.C程序設(shè)計教程[M].北京:電子工業(yè)出版社,2000.

猜你喜歡
C語言表達式函數(shù)
二次函數(shù)
第3講 “函數(shù)”復(fù)習(xí)精講
二次函數(shù)
函數(shù)備考精講
基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
計算機教育(2020年5期)2020-07-24 08:52:56
一個混合核Hilbert型積分不等式及其算子范數(shù)表達式
表達式轉(zhuǎn)換及求值探析
淺析C語言運算符及表達式的教學(xué)誤區(qū)
基于C語言的計算機軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
高職高專院校C語言程序設(shè)計教學(xué)改革探索
西和县| 江川县| 丰镇市| 调兵山市| 郧西县| 宁德市| 伊金霍洛旗| 灵丘县| 常德市| 长兴县| 芦山县| 兰西县| 梅州市| 青海省| 繁昌县| 曲阜市| 比如县| 安新县| 安阳市| 新龙县| 盐亭县| 西畴县| 黄冈市| 仙游县| 乡宁县| 贡嘎县| 蒙自县| 新安县| 泰安市| 峨山| 舟曲县| 宜春市| 屏东市| 栾川县| 墨竹工卡县| 邵阳市| 故城县| 拜泉县| 信宜市| 噶尔县| 安多县|