變量的作用域
在討論函數的形參變量時曾經提到, 形參變量只在被調用期間才分配內存單元,調用結束立即釋放。 這一點表明形參變量只有在函數內才是有效的, 離開該函數就不能再使用了。這種變量有效性的范圍稱變量的作用域。不僅對于形參變量, C語言中所有的量都有自己的作用域。變量說明的方式不同,其作用域也不同。 C語言中的變量,按作用域范圍可分為兩種, 即局部變量和全局變量。
一、局部變量
局部變量也稱為內部變量。局部變量是在函數內作定義說明的。其作用域僅限于函數內, 離開該函數后再使用這種變量是非法的。
例如:
int f1(int a) /*函數f1*/
{
int b,c;
……
}a,b,c作用域
int f2(int x) /*函數f2*/
{
int y,z;
}x,y,z作用域
main()
{
int m,n;
}
m,n作用域 在函數f1內定義了三個變量,a為形參,b,c為一般變量。在 f1的范圍內a,b,c有效,或者說a,b,c變量的作用域限于f1內。同理,x,y,z的作用域限于f2內。 m,n的作用域限于main函數內。關于局部變量的作用域還要說明以下幾點:
1. 主函數中定義的變量也只能在主函數中使用,不能在其它函數中使用。同時,主函數中也不能使用其它函數中定義的變量。因為主函數也是一個函數,它與其它函數是平行關系。這一點是與其它語言不同的,應予以注意。
2. 形參變量是屬于被調函數的局部變量,實參變量是屬于主調函數的局部變量。
3. 允許在不同的函數中使用相同的變量名,它們代表不同的對象,分配不同的單元,互不干擾,也不會發(fā)生混淆。如在例5.3 中,形參和實參的變量名都為n,是完全允許的。4. 在復合語句中也可定義變量,其作用域只在復合語句范圍內。例如:
main()
{
int s,a;
……
{
int b;
s=a+b;
……b作用域
}
……s,a作用域
}
相關推薦:計算機等考二級C語言備考:C語言/C++編譯過程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |