999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言自增\\自減運算符的應用

2010-12-31 00:00:00李春玲
考試周刊 2010年43期

摘 要: Ca語言的一個主要特點是運算符豐富、范圍廣。靈活地使用各種運算符可以實現在其它高級語言中難以實現的運算。本文主要對C語言中自增、自減兩個運算符的使用作詳細說明。

關鍵詞: C語言 自增、自減運算符 功能 運算規則

C語言中的運算符非常豐富,把除了控制語句和輸入輸出以外的幾乎所有的基本操作都作為運算符處理,靈活使用各種運算符可以實現在其他高級語言中難以實現的運算。在這些運算符中,最難理解、最易出錯也最為靈活的便是自增、自減運算符。下面我詳細歸納了使用自增、自減運算符時的注意事項,并結合運算符的優先級和其本身的特點,對Turbo C環境下的自增、自減運算符的功能與運算規則加以分析。

1.自增、自減運算符的作用及形式

C語言中的自增運算符“++”和自減運算符“--”的作用是使運算對象的值增1或減1,如i++,相當于i=i+1;i--,相當于i=i-1。因此,自增、自減運算本身也是一種賦值運算,其運算對象只要是標準類型的變量,不論是字符型、整型、實型或是枚舉型都可作為運算對象,而由于常量和表達式不占存儲單元,因此不能使用常量或表達式作運算對象,如1++、(a+b)--等都是非法的。

自增、自減運算符有兩種使用形式:前置式(++i,--i)和后置式(i++,i--)。前置式中先使i加減1,再使用i,后置式中先使用i,再使i加減1。

2.自增、自減運算符的應用

很多C語言教材和參考書都說明自增、自減運算符具有“從右向左”的結合性,并且由于操作數只有一個,屬于單目操作,因此優先級也高于其它雙目運算符和三目運算符的優先級。但在實際的編程中我們發現,自增、自減運算符的運算規則在不同的表達式中也不盡相同。下面我們就從自增、自減運算符的以下幾點應用來進行分析。

2.1自增、自減運算符在賦值表達式中的應用。

例1:main()

{int i=1,j=2,k;

k=i+++j;

printf(\"k=%d,i=%d,j=%d\\",k,i,j);

}

這里的i+++j是理解成i+(++j),還是理解成(i++)+j呢?Turbo C編譯處理將自左向右解釋為(i++)+j,而不是i+(++j),因此程序運行結果為:k=3,i=2,j=2。

2.2自增、自減運算符在條件表達式中的應用。

例:main()

{int i=1,j=3,k;

k=i>j?++i:++j;

printf(\"k=%d,i=%d,j=%d\\",k,i,j);

}

由于程序中的“i>j?++i:++j”是一個條件表達式,雖然自增運算符的優先級比條件運算符的優先級高,但在程序運行時,先對i是否大于j進行判斷,由于(i>j)為假,因此只需計算++j,j自增后為4,而對于++i并不計算,i仍為1,程序的運行結果為:k=4,i=1,j=4。

2.3自增、自減運算符在邏輯表達式中的應用。

例:main()

{int i=0,j=1,k=2,x;

x=++i||++j++k;

printf(\"x=%d,i=%d,j=%d,k=%d\\",x,i,j,k);

}

程序中的賦值語句“x=++i||++j++k;”在執行時,雖然里邊包含三個自增運算:++i、++j和++k,而自增運算符的優先級又高于邏輯運算符的優先級,但在Turbo C中實際只執行了++i,對++j和++k并沒有執行。這是因為在C語言中針對||運算符和運算符在使用的時候有一個規定:在一個復雜的邏輯表達式中,若前面子表達式的值能夠決定整個表達式的值,則后面的子表達式不需計算。在表達式x=++i||++j++k中,++i的值為1,它與后面的子表達式++j++k進行||運算,它能夠決定整個表達式的值,后面的++j和++k無需執行,因此程序的運行結果為:x=1,i=1,j=1,k=2。

2.4自增、自減運算符和其它單目運算符的應用。

例:main()

{int i=1,j;

j=-i++;

printf(\"%d,%d\\",i,j);

}

程序中對于同一個運算對象i而言,-和++都是單目運算符,優先級相同,那么到底是先運算-i呢,還是先運算i++。由于單目運算符具有從右向左的結合性,所以i先于右邊的運算符++結合,即先計算i++,在計算-i,表達式等價于-(i++)。程序運行結果為:2,-1。

2.5自增、自減運算符在函數中的應用。

例:main()

{int i=3;

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

}

在調用函數時,對實參的求值順序,C標準并無統一規定。在有的系統中,從左至右求值,程序運行結果為:3,3。但在多數系統(如:Turbo C)中對函數參數的求值順序是從右向左,上面printf函數中藥輸出兩個表達式的值(i和i++),先求出第二個表達式i++的值3(i未自增時的值),然后在求解第一個表達式的值,由于在求解第二個表達式后,i自增1,i變為4,所以printf函數中的第一個參數i的值為4,程序運行結果為:4,3。

為了避免出現類似錯誤,程序最好改寫成:

main()

{int i=3,j;

j=i++;

printf(\"%d,%d\\",i,j);

}

綜上所述,在使用自增、自減運算符時,若在表達式或語句中只包含一種操作時(自增或自減),則前置式和后置式的作用都是一樣的,都是使變量加1或減1。若自增、自減運算符和其它運算符聯合使用時,就需根據從不同運算符優先級和結合性兩點上綜合考慮變量的變化方式。若在函數調用中使用自增、自減運算符時,我們要考慮不同的系統中處理方法不盡相同,所以對于初學者而言,若是不能熟練的掌握自增、自減運算符的使用,就需避免寫出別人看不懂,也不知道系統會怎樣執行的程序,盡量在比較單一的表達式中實現程序??傊?,掌握好C語言的運算符、表達式對編寫簡潔明快、清晰易懂的程序非常重要。

參考文獻:

[1]譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2005.

[2]楊路明.C語言程序設計[M].北京:北京郵電大學出版社,2003.

[3]黃維通,馬力妮.C語言程序設計[M].北京:清華大學出版社,2003.

[4]宗大華,蔣瑋.C語言程序設計[M].人民郵電出版社,2003.

[5]秦玉平,戴心來.C語言中的自增自減運算[J].渤海大學學報,2004,(4):368.

主站蜘蛛池模板: 欧美无专区| 中文字幕亚洲第一| 国产尤物视频网址导航| 国产粉嫩粉嫩的18在线播放91 | jizz亚洲高清在线观看| 国产午夜一级淫片| 日韩高清一区 | 国产玖玖视频| 人妻无码AⅤ中文字| 第一页亚洲| 在线一级毛片| 国产视频大全| 欧美精品H在线播放| 999国内精品视频免费| 黄色网页在线播放| 人妻无码一区二区视频| 国产真实自在自线免费精品| 国产精品人人做人人爽人人添| 国内精品九九久久久精品| 国产高清国内精品福利| 亚洲欧美另类中文字幕| 亚洲美女一级毛片| 国产一区二区三区精品欧美日韩| 在线播放精品一区二区啪视频| 欧美视频二区| 久996视频精品免费观看| 久热99这里只有精品视频6| 精品国产一二三区| 精品人妻一区二区三区蜜桃AⅤ| 国产在线一二三区| 成人午夜视频免费看欧美| 精品超清无码视频在线观看| 欧美日韩中文国产va另类| 色亚洲激情综合精品无码视频| 国产视频一区二区在线观看| 欧美色综合网站| 一区二区三区成人| 亚洲女同一区二区| 国产h视频在线观看视频| 麻豆AV网站免费进入| 亚洲午夜福利精品无码| 国产麻豆aⅴ精品无码| 久久综合色天堂av| 天天做天天爱夜夜爽毛片毛片| 中国丰满人妻无码束缚啪啪| 精品一区二区无码av| 女人爽到高潮免费视频大全| 亚洲人成人无码www| 91成人精品视频| 少妇露出福利视频| 日韩视频免费| 国产女人18毛片水真多1| 国产一区二区三区免费观看| 2021国产乱人伦在线播放| 欧美成人午夜视频免看| 天天躁狠狠躁| 99re视频在线| 久视频免费精品6| 91精品网站| 福利一区在线| 免费日韩在线视频| 666精品国产精品亚洲| 精品成人一区二区| 男女性色大片免费网站| 精品剧情v国产在线观看| 波多野结衣视频一区二区| 欧美一级夜夜爽www| 国产九九精品视频| 国产SUV精品一区二区| 亚洲第七页| 亚洲精品无码在线播放网站| 欧美一级夜夜爽| 在线观看视频一区二区| 日本精品中文字幕在线不卡| 欧美日韩中文字幕在线| 91成人在线观看视频| 国产成人三级| 亚洲欧美日韩成人在线| 国产麻豆91网在线看| 亚洲欧洲一区二区三区| 一级全黄毛片| 九九线精品视频在线观看|