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

C語(yǔ)言 局部變量

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

    局部變量也稱為內(nèi)部變量,是在一個(gè)函數(shù)內(nèi)部聲明的變量,作用域只限于本函數(shù)內(nèi)部。在函數(shù)內(nèi)部可以合法引用,在該函數(shù)外面使用局部變量是非法的。例如:

int fun(int m,int n)    /*m,n,max的作用域?yàn)閙ain()函數(shù)*/

{

    int max;

    max=m>n?.m:n;

}

main()

{

    int a,b;          /*a,b的作用域?yàn)閙ain()函數(shù)*/

    scanf("%d%d",&a,&b);

    printf("%d\n",fun(a.b));

}

    從上例中可以看到,fun()函數(shù)中出現(xiàn)了三個(gè)變量:形參m,n和普通變量max,它們的作用域都僅限于fun()函數(shù)內(nèi)部。同樣,在main()函數(shù)內(nèi)定義的變量作用域僅限于main()函數(shù),并不因?yàn)樗莔ain()函數(shù)而可以調(diào)用其他函數(shù)中的變量。因?yàn)镃語(yǔ)言中所有的函數(shù)都是平行的。如在main()函數(shù)中 直接使用max()函數(shù),編譯系統(tǒng)會(huì)提示“變量未定義”的錯(cuò)誤。

    關(guān)于局部變量的作用域還要說(shuō)明以下幾點(diǎn):

    ①因?yàn)樵贑語(yǔ)言中所有的函數(shù)地位是平行的,所以主函數(shù)main()中定義的內(nèi)部變量,也只能在主函數(shù)中使用,其他函數(shù)不能使用。同樣,主函數(shù)中也不能使用其他函數(shù)中定義的內(nèi)部變量。

    ②形參變量也是局部變量,屬于被調(diào)用函數(shù),如上例中fun()函數(shù)中的形參m、n都是局部變量。同樣的,實(shí)參變量則是調(diào)用函數(shù)的內(nèi)部變量。

    ③允許在不同的函數(shù)中使用相同的變量名,它們代表不同的對(duì)象,分配不同的單元,互不干擾,也不會(huì)發(fā)生混淆。

    ④在復(fù)合語(yǔ)句中也可定義變量,其作用域只在復(fù)合語(yǔ)句范圍內(nèi),例如:

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

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