1、變量作用域與存儲(chǔ)類別
C語言的變量按作用域可分為:
關(guān)于局部變量的作用域說明以下幾點(diǎn):
×:
主函數(shù)中定義的變量也只能在主函數(shù)中使用,不能在其它函數(shù)中使用。同時(shí),主函數(shù)中也不能使用其它函數(shù)中定義的變量。因?yàn)橹骱瘮?shù)也是一個(gè)函數(shù),它與其它函數(shù)是平行關(guān)系。
×: 形參變量是屬于被調(diào)函數(shù)的局部變量,實(shí)參變量是屬于主調(diào)函數(shù)的局部變量。
×:
允許在不同的函數(shù)中使用相同的變量名,它們代表不同的對(duì)象,分配不同的單元,互不干擾,也不會(huì)發(fā)生混淆。雖然允許在不同的函數(shù)中使用相同的變量名,但是為了使程序明了易懂,不提倡在不同的函數(shù)中使用相同的變量名。
對(duì)于全局變量還有以下幾點(diǎn)說明:
×:
對(duì)于局部變量的定義和說明,可以不加區(qū)分。而對(duì)于外部變量則不然,外部變量的定義和外部變量的說明并不是一回事。外部變量定義必須在所有的函數(shù)之外,且只能定義一次。 其一般形式為: [extern] 類型說明符 變量名,變量名… 其中方括號(hào)內(nèi)的extern可以省去不寫。
例如: int a,b;
等效于:
extern int a,b;
而外部變量說明出現(xiàn)在要使用該外部變量的各個(gè)函數(shù)內(nèi),在整個(gè)程序內(nèi),可能出現(xiàn)多次,外部變量說明的一般形式為: extern 類型說明符 變量名,變量名,外部變量在定義時(shí)就已分配了內(nèi)存單元,外部變量定義可作初始賦值,外部變量說明不能再賦初始值, 只是表明在函數(shù)內(nèi)要使用某外部變量。
×:
外部變量可加強(qiáng)函數(shù)模塊之間的數(shù)據(jù)聯(lián)系,但是又使函數(shù)要依賴這些變量,因而使得函數(shù)的獨(dú)立性降低。從模塊化程序設(shè)計(jì)的觀點(diǎn)來看這是不利的, 因此在不必要時(shí)盡量不要使用全局變量。
×: 在同一源文件中,允許全局變量和局部變量同名。在局部變量的作用域內(nèi),全局變量不起作用。
2、指針與數(shù)組的區(qū)別與聯(lián)系