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

淺析C語言中的變量

2013-12-31 00:00:00楊文清
科海故事博覽·科教論壇 2013年12期

[摘 要]:C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它是世界上最流行、使用最廣泛的高級程序設計語言之一。在操作系統和系統使用程序以及需要對硬件進行操作的場合,用C語言明顯優于其它高級語言。但是,由于C語言牽涉到的概念比較復雜,規則繁多,所以很多初學者感到困難,尤其在函數的局部變量、全局變量、遞歸調用、指針等的使用上更是一頭霧水,本文就C語言的局部變量和全局變量的定義及其使用進行一些分析比較。

[關鍵詞]:C語言 局部變量 全局變量 作用域

一、引言

C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它是世界上最流行、使用最廣泛的高級程序設計語言之一。在操作系統和系統使用程序以及需要對硬件進行操作的場合,用C語言明顯優于其它高級語言。在C語言函數的形參變量中,形參變量只在被調用期間才分配內存單元,調用結束立即釋放。這一點表明形參變量只有在函數內才是有效的,離開該函數就不能再使用了。這種變量有效性的范圍稱變量的作用域。不僅對于形參變量,C語言中所有的量都有自己的作用域。變量說明的方式不同,其作用域也不同。C語言中的變量,按作用域范圍可分為兩種,即局部變量和全局變量。

二、局部變量

局部變量是指在程序中,只在特定過程或函數中可以訪問的變量,是相對與全局變量而言的。

它有幾個特征:作用域為定義它的函數;編譯器不會對自動變量給予隱含的初值,故其值不確定,因此每次使用前必須明確的置初值;形參是自動變量,作用域僅限于相應函數內;自動變量隨函數的引用而存在和消失,由一次調用到下一次調用之間不保持值。

關于局部變量的作用域要注意幾點:主函數中定義的變量也只能在主函數中使用,不能在其它函數中使用。同時,主函數中也不能使用其它函數中定義的變量。因為主函數也是一個函數,它與其它函數是平行關系。這一點是與其它語言不同的,應予以注意;形參變量是屬于被調函數的局部變量,實參變量是屬于主調函數的局部變量;允許在不同的函數中使用相同的變量名,它們代表不同的對象,分配不同的單元,互不干擾,也不會發生混淆;在復合語句中也可定義變量,其作用域只在復合語句范圍內。

三、全局變量

全局變量也稱為外部變量,它是在函數外部定義的變量。它不屬于哪一個函數,它屬于一個源程序文件。其作用域是整個源程序。在函數中使用全局變量,一般應作全局變量說明。只有在函數內經過說明的全局變量才能使用。全局變量的說明符為extern。但在一個函數之前定義的全局變量,在該函數內使用可不再加以說明。

全局變量的優點有:地址固定、效率高;用起來方便。

全局變量的缺點有:全局變量保存在靜態存貯區,程序開始運行時為其分配內存,程序結束釋放該內存。與局部變量的動態分配、動態釋放相比,生存期比較長,因此過多的全局變量會占用較多的內存單元;全局變量破壞了函數的封裝性能。前面的章節曾經講過,函數象一個黑匣子,一般是通過函數參數和返回值進行輸入輸出,函數內部實現相對獨立。但函數中如果使用了全局變量,那么函數體內的語句就可以繞過函數參數和返回值進行存取,這種情況破壞了函數的獨立性,使函數對全局變量產生依賴。同時,也降低了該函數的可移植性;全局變量使函數的代碼可讀性降低。由于多個函數都可能使用全局變量,函數執行時全局變量的值可能隨時發生變化,對于程序的查錯和調試都非常不利。

使用全局變量時應注意:全局變量是使程序簡潔,在保持簡潔的同時不能使程序的邏輯發生混亂。特別是程序中需要根據某些狀態來決定程序的流程時;全局變量處理的內容最好具有唯一性;需要使用多個全局變量時,最好把這些全局變量都封裝在一個結構中;自定義的庫中最好不要包括全局變量。

總之,全局變量可以使用,但是全局變量使用時應注意的是盡可能使其名字易于理解,而且不能太短,避免名字空間的污染;避免使用巨大對象的全局變量。

四、應用分析

int x=100;/*全局變量的定義*/

main( )

{ int x=100;/*局部變量,函數內有效*/

f( );

ff( );

printf(“%d\n”,x); }

f( )

{ int x=500;/*局部變量,函數內有效*/

x+=100;

printf(“%d\n”,x); }

ff( )

{ x+=100;/*使用全局變量*/

printf(“%d\n”,x); }

運行結果:600/*調用函數f( )的結果*/

200/*調用函數ff( )的結果*/

100/*調用函數main( )的結果*/

以上是局部變量和全局變量的一個典型的應用,在這個程序中”int x=100”中的x是一個全局變量,一經定義編譯系統為其分配固定的內存單元,在程序運行的自始至終都占用固定單元,所以在main( )函數的最后一句中輸出的結果是100;在f( )函數中x定義為一個值為500的局部變量,由于在局部變量起作用的范圍內,全局變量不起作用,所以”int x=500”在f( )函數中有效,故第一個輸出的結果是600;在ff( )函數中,沒有定義局部變量,所以x被認為就是之前定義的全局變量的x,其值自然就是100,故第二個輸出的結果是200。

五、結論

通過對全局變量與局部變量的分析,在使用全局變量與局部變量時應注意到:不同函數內的局部變量可以重名,互不影響。但是,在局部變量起作用的范圍內,全局變量不起作用。最后全局變量的初始化只能有一次,是在對全局變量說明時進行初始化。

參考文獻:

[1]譚浩強. C語言程序設計 [M]. 北京:清華大學出版社 1991

[2]李鳳霞 C語言程序設計教程(第二版)[M] 北京:北京理工大學出版社 2008

主站蜘蛛池模板: 亚洲成人网在线播放| 国产成人一区| 91在线精品麻豆欧美在线| 久草热视频在线| 国产在线观看人成激情视频| 老色鬼久久亚洲AV综合| 国产91成人| 一级毛片在线直接观看| 国产成人精品在线1区| 亚洲精品国偷自产在线91正片| 亚洲永久色| 国产欧美性爱网| 99久久精品免费观看国产| 亚洲无码日韩一区| 欧美狠狠干| 91欧美在线| 成人一级黄色毛片| 福利视频99| 欧美午夜网| 亚洲成人在线网| 亚洲欧美极品| 欧美视频在线第一页| 亚洲色大成网站www国产| av在线无码浏览| 91九色国产porny| 综合网久久| 精品中文字幕一区在线| 色亚洲成人| 99成人在线观看| 内射人妻无套中出无码| 亚洲综合亚洲国产尤物| 老司机午夜精品网站在线观看| 日韩国产黄色网站| 国产精品美女自慰喷水| 99热这里只有免费国产精品| 国产真实二区一区在线亚洲| 亚洲日本在线免费观看| 国产乱视频网站| 激情无码字幕综合| 99久久人妻精品免费二区| 白浆视频在线观看| 一本无码在线观看| 国产对白刺激真实精品91| 国产成人无码久久久久毛片| 国产丝袜一区二区三区视频免下载 | 国产成熟女人性满足视频| 亚洲人视频在线观看| 五月婷婷精品| 毛片手机在线看| 久久精品电影| 人妻丝袜无码视频| 国产专区综合另类日韩一区| 一本一道波多野结衣一区二区| 国产亚洲欧美在线中文bt天堂| 国产在线精彩视频二区| 18禁不卡免费网站| 成人亚洲视频| 欧美午夜网| 精品国产自在现线看久久| 国产伦片中文免费观看| 亚洲一级毛片| 热久久这里是精品6免费观看| 成人福利在线视频| 国产视频一二三区| 国产成人综合久久精品尤物| 茄子视频毛片免费观看| 国产 在线视频无码| 久久国产亚洲偷自| 最新国产精品第1页| 69免费在线视频| 亚洲制服丝袜第一页| 自偷自拍三级全三级视频| 手机在线免费毛片| 小说区 亚洲 自拍 另类| 国产AV无码专区亚洲A∨毛片| 在线欧美日韩国产| 国产成人AV男人的天堂| av一区二区三区高清久久| 久久中文字幕不卡一二区| 91精品久久久无码中文字幕vr| 亚洲最新地址| 99国产在线视频|