C語言 局部變量
局部變量也稱為內(nèi)部變量,是在一個函數(shù)內(nèi)部聲明的變量,作用域只限于本函數(shù)內(nèi)部。在函數(shù)內(nèi)部可以合法引用,在該函數(shù)外面使用局部變量是非法的。例如:
int fun(int m,int n) /*m,n,max的作用域為main()函數(shù)*/
{
int max;
max=m>n?.m:n;
}
main()
{
int a,b; /*a,b的作用域為main()函數(shù)*/
scanf("%d%d",&a,&b);
printf("%d\n",fun(a.b));
}
從上例中可以看到,fun()函數(shù)中出現(xiàn)了三個變量:形參m,n和普通變量max,它們的作用域都僅限于fun()函數(shù)內(nèi)部。同樣,在main()函數(shù)內(nèi)定義的變量作用域僅限于main()函數(shù),并不因為它是main()函數(shù)而可以調(diào)用其他函數(shù)中的變量。因為C語言中所有的函數(shù)都是平行的。如在main()函數(shù)中 直接使用max()函數(shù),編譯系統(tǒng)會提示“變量未定義”的錯誤。
關(guān)于局部變量的作用域還要說明以下幾點:
①因為在C語言中所有的函數(shù)地位是平行的,所以主函數(shù)main()中定義的內(nèi)部變量,也只能在主函數(shù)中使用,其他函數(shù)不能使用。同樣,主函數(shù)中也不能使用其他函數(shù)中定義的內(nèi)部變量。
②形參變量也是局部變量,屬于被調(diào)用函數(shù),如上例中fun()函數(shù)中的形參m、n都是局部變量。同樣的,實參變量則是調(diào)用函數(shù)的內(nèi)部變量。
③允許在不同的函數(shù)中使用相同的變量名,它們代表不同的對象,分配不同的單元,互不干擾,也不會發(fā)生混淆。
④在復(fù)合語句中也可定義變量,其作用域只在復(fù)合語句范圍內(nèi),例如:
點擊加載更多評論>>