位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 局部變量

提問人:劉團(tuán)圓發(fā)布時間:2020-12-01

    局部變量也稱為內(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),例如:

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部