1、一般我們都把變量的定義放在函數(shù)中,因此變量的范圍就是在本函數(shù)中。可是如果定義在所有函數(shù)的外面,這樣所有的函數(shù)中,都可以使用本變量。你可以試一下這個程序。
創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、友好網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為友好等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
2、C 語言規(guī)定,在一個域中,先寫聲明,再寫語句,你的函數(shù)調(diào)用語句 跑到 聲明和初始化 之前,這將引起錯誤。
3、你是不是定義了全局變量后又在子函數(shù)或者主函數(shù)里面定義了同名的變量,如果是這樣的話,主函數(shù)或者子函數(shù)使用的是該函數(shù)里面定義的變量(局部變量),全局變量被自動忽視了。但是局部變量不影響全局變量的值。
C語言中的變量有四種存儲類型,這四種存儲類型的關(guān)鍵字分別是auto(自動),extern(外部),static(靜態(tài))和register(寄存器)。
全局變量,不管是否被初始化,其生命周期都是整個程序運行過程中,為了節(jié)省內(nèi)存空間,在當(dāng)前文件中使用extern來聲明其它文件中定義的全局變量時,就不會再為其分配內(nèi)存空間。
存儲類別指的是數(shù)據(jù)在內(nèi)存中存儲的方法。存儲方法分為靜態(tài)存儲和動態(tài)存儲兩大類。標(biāo)準(zhǔn)C語言為變量、常量和函數(shù)定義了4種存儲類型:extern、auto、static、register。根據(jù)變量的存儲類別,可以知道變量的作用域和存儲期。
存儲類型是auto,編譯器默認(rèn)給變量的(除非顯示指定register、static類型)auto修飾的變量是自動變量。自動變量:函數(shù)中的局部變量如不特別申明為static存儲類型,都是動態(tài)地分配存儲空間,數(shù)據(jù)存儲在動態(tài)存儲區(qū)。
這種存儲類型是C語言程序中使用最廣泛的一種類型。C語言規(guī)定, 函數(shù)內(nèi)凡未加存儲類型說明的變量均視為自動變量, 也就是說自動變量可省去說明符auto。 在前面各章的程序中所定義的變量凡未加存儲類型說明符的都是自動變量。
而在main函數(shù)內(nèi)部,說明了兩個自動變量i和j,這樣在main內(nèi)部出現(xiàn)的i就是自動量。在filec的開頭說明i是外部的,表明它與filec定義的i是同一個變量,所以reset的值返回的就是這個i的當(dāng)前值1。
自動變量就是指在函數(shù)內(nèi)部定義使用的變量。他只是允許在定義他的函數(shù)內(nèi)部使用它。在函數(shù)外的其他任何地方都不能使用的變量。自動變量是局部變量,即它的區(qū)域性是在定義他的函數(shù)內(nèi)部有效。