作用域:起作用的區(qū)域
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比建陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式建陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋建陽地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
變量按作用域分:
局部變量:定義在函數(shù)內(nèi)部的變量
全局變量 :定義在函數(shù)外部的變量
變量按存儲類型分
auto:自動類型
作用域決定變量的生命周期
注意點:如果局部變量和全局變量起沖突,局部變量此時會成瞎子,看不到全局變量的存在
函數(shù)遞歸
作用域的定義是這樣的:如果一個變量在某個文件或函數(shù)范圍內(nèi)是有效的,則稱該文件或函數(shù)為該變量的作用域,在此作用域內(nèi)可以引用該變量,所以又稱變量在此作用域內(nèi)“可見”,這種性質(zhì)又稱為變量的可見性。例如
文件file.c
int a;
main函數(shù)
{…
f2();
…
f1();
}
f1函數(shù)
{auto int b;
…
f2()
…
}
f2函數(shù)
{static int c;
…
}
這里a的作用域就是整個文件,b的作用域是f1函數(shù),c的作用域是f2函數(shù)!其實作用域就是作用范圍沒什么很復(fù)雜的概念!
有四種,分別如下:
C語言編譯器可以確認(rèn)四種不同類型的作用域:
一.代碼塊作用域。
在KR C中,函數(shù)形參的作用域始于形參的聲明處,位于函數(shù)體之外如果函數(shù)體內(nèi)部聲明了名字相同的局部變量,他們就將隱藏起來;ANSI C遏止了這種錯誤的可能性,它把形參的作用域設(shè)置為整個函數(shù)體。
二.文件作用域。
任何在代碼塊之外聲明的標(biāo)識符都具有文件作用域。但是在同文件中編寫的通過include指令包含到其他文件中的聲明,就好像直接寫在那些文件中一樣,它們的作用域不限于頭文件的文件尾。
三.原型作用域(即函數(shù)體去掉代碼塊的部分)。
只適用于在函數(shù)原型中聲明的參數(shù)。唯一可能出現(xiàn)的沖突就是在同一個原型中,不止一次地使用同一個名字。
四.函數(shù)作用域。
它只適用于語句標(biāo)簽,語句標(biāo)簽用于go語句。一個函數(shù)中的所有語句標(biāo)簽必須唯一。
希望能幫助您
還請及時采納謝謝
C程序的標(biāo)識符作用域有三種:局部、全局、文件。標(biāo)識符的作用域決定了程序中的哪些語句可以使用它,換句話說,就是標(biāo)識符在程序其他部分的可見性。通常,標(biāo)識符的作用域都是通過它在程序中的位置隱式說明的。