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

主站蜘蛛池模板: 国产永久在线视频| 亚洲视屏在线观看| 精品少妇人妻av无码久久| 国产精品美女自慰喷水| 白浆免费视频国产精品视频| 一级毛片在线播放免费| 国模粉嫩小泬视频在线观看| 丰满人妻被猛烈进入无码| 国产91精品久久| 欧美伦理一区| 青青操国产| 亚洲看片网| 国产白浆在线观看| 自拍亚洲欧美精品| 国产黑丝视频在线观看| 国产不卡在线看| 久久人体视频| 日韩精品亚洲一区中文字幕| 国产精品福利一区二区久久| 国产真实乱子伦视频播放| 国产夜色视频| 亚洲人成人无码www| 99在线视频网站| 拍国产真实乱人偷精品| 欧美成人综合视频| 91久久偷偷做嫩草影院电| 人妻一本久道久久综合久久鬼色| 亚洲a免费| www.youjizz.com久久| www.日韩三级| 97精品伊人久久大香线蕉| 国内精品91| 国产一级毛片在线| 四虎AV麻豆| 亚洲天堂视频在线免费观看| 欧美视频在线播放观看免费福利资源 | 亚洲精品成人片在线观看| 日韩不卡高清视频| 成年av福利永久免费观看| 亚洲精品无码AⅤ片青青在线观看| 亚洲精品少妇熟女| 日韩123欧美字幕| 成年午夜精品久久精品| 国产成人精品一区二区免费看京| 日韩激情成人| 日韩国产亚洲一区二区在线观看| 国产一线在线| 国产门事件在线| 久久77777| 久久不卡精品| 国产青榴视频| 精品天海翼一区二区| 亚洲国产精品一区二区高清无码久久 | 首页亚洲国产丝袜长腿综合| 中文字幕佐山爱一区二区免费| 992tv国产人成在线观看| 超清人妻系列无码专区| 亚洲精品麻豆| 波多野结衣第一页| 日韩无码视频专区| 亚洲精品无码日韩国产不卡| 一区二区三区成人| 热久久国产| 国产福利微拍精品一区二区| 精品久久综合1区2区3区激情| 亚洲男人的天堂久久香蕉网| 日韩AV手机在线观看蜜芽| 久久国产精品无码hdav| 国产福利免费在线观看| 国产美女视频黄a视频全免费网站| 国产一二三区在线| 免费不卡视频| 国产午夜精品一区二区三区软件| 国产精品熟女亚洲AV麻豆| 日韩欧美国产另类| 亚洲综合第一区| 国产理论精品| 日本成人不卡视频| 99在线小视频| 无码一区二区三区视频在线播放| 精品丝袜美腿国产一区| 午夜视频日本|