什麼叫做**塊呢?
**塊就是我們在復合語句中的就要**塊,在**塊中的auto(自動變數)是無法超出這個範圍的,一旦超出了這個範圍的話就會消失它的作用,比如:void main()
{ 這個main函式的花括號就是乙個**塊,而我們要在它的裡面再定義乙個**塊
{ 這個就是乙個**塊,這是個內部的**塊,雖然是寫在main函式裡的,但是,裡面的**塊的變數無法超出這個範圍。
int k=0;
k++;
auto(自動變數),它的作用就是在某一定的**塊中使用,就像我們平時定義的變數都是省略了這個auto(自動變數)的,一旦你宣告的auto(自動變數)超出了範圍的話,它的數值也就為清空了,為零。
register(暫存器),暫存器的好處就是,在程式設計解決迴圈較多的時候利用,可以使得返回的速度快。
static(靜態變數),它都作用域都是在乙個源程式中,只有當這個源程式關閉的的時候才會消失這個變數,而訪問的時候,也只有在原始檔當中才能訪問,一旦超出了這個原始檔的情況下就會消失這個變數的。
extern(外部變數) ,以上的變數想要跨檔案使用的話就需要定義乙個extern(外部變數),這樣可以引用register(暫存器),也可以引用static(靜態變數),從而達到跨檔案的效果。
以上的四種變數都是有自己的作用域,各具特色,我們用的時候就要小心。
C語言變數作用域
作用域描述程式中可訪問識別符號的區域。乙個c變數的作用域可以是塊作用域,函式作用域,函式原型作用域或檔案作用域。int fun int a q作用域結束 在這個例子中,q的作用域只在內層塊,只有內層塊中的 才能訪問q。在c99中,把塊的概念擴充套件到for迴圈,while迴圈,do while迴圈和...
C語言變數的作用域
作用域是程式中定義的變數存在 或生效 的區域,超過該區域變數就不能被訪問。c語言中有四種地方可以定義變數。1 在所有函式外部定義的是全域性變數。2 在標頭檔案中定義的是全域性變數。3 在函式或語句塊內部定義的是區域性變數。4 函式的引數是該函式的區域性變數。順便解釋一下,函式的宣告和函式的定義是兩個...
C語言變數的作用域
作用域是程式中定義的變數存在 或生效 的區域,超過該區域變數就不能被訪問。c語言中有四種地方可以定義變數。1 在所有函式外部定義的是全域性變數。2 在標頭檔案中定義的是全域性變數。3 在函式或語句塊內部定義的是區域性變數。4 函式的引數是該函式的區域性變數。順便解釋一下,函式的宣告和函式的定義是兩個...