C語言
-
區域變數、
-
函式內定義的變數、只能在本函式內使用、
-
可以呼叫其它函式、但是其它函式仍然無法使用呼叫者的變數、
-
不同的函式可以使用相同名稱的變數、互補干擾、
-
形式引數、也可視為區域變數、
-
在復合陳述句中定義的變數、僅在復合陳述句中有效、該種復合陳述句成為——程式塊、
-
{ int a; c=5 }
-
-
、
-
、
-
-
全域變數
-
函式外定義的變數、
-
#include<stdio.h> int p =1,q = 5;//函式外定義的變數、全域變數 int main() { }
-
-
、可以讓其它函式共用、
-
優點
1. 增加了函式與函式之間的資料聯系、如果一個函式改變了全域變數的值、就能影響到其它的函式、 2. 相當于各個函式之間有傳遞的直接通道、不在需要通過實參和形參來傳遞數值、 -
缺點
1. 全域變數在整個程式的周期運行都占用記憶體、而不像函式內部的區域變數、用完會被回收 2. 降低了函式的通用性 3. 函式在執行時依賴外部的全部變數 4. 如果程式遷移則需要將外部變數一起遷移 2. 降低了程式的清晰性呵呵可讀性、 3. -
如果某個函式想參考它后面定義的全部變數、則可以用一個關鍵字——extern——來做一個外部變數說明、表示該變數在函式外部定義、
-
extern 函式名 -
相當于提前宣告
-
也就是一個函式不能使用某一個變數可以在此函式前用exten來宣告這個變數、
-
a函式想使用b函式的區域變數、可以在a函式前使用extern來宣告有此函式、便可實作使用b函式的區域變數
-
外部變數說明可以多次、而且不分配記憶體、
-
extern——僅僅是為了參考變數而做的宣告
-
-
、
-
-
區域變數是在函式內定義的變數所以變數的有效域便是整個函式、而全域變數則是在函式外定義所以整個源檔案都可以使用這個變數、而程式塊則是范圍更小的范圍內使用變數、所以注意其變數的使用范圍便可、
-
、全部變數————慎用、
-
定義分配記憶體、宣告不分配記憶體、
-
如果全域變數和區域變數同名、則在區域變數使用范圍內全域變數不起作用、——全域變數的值也不受其影響、
-
int a = 100, b = 500;//定義 void c(int a, int b) { a = 10;//函式內的變數——區域變數 b = 200;//函式內的變數——區域變數 printf("a=%d\n", a);//區域變數的值改變 printf("b=%d\n", b);//區域變數的值改變 return;//回傳——回傳后區域變數的值便沒有啦、因為記憶體的被釋放掉啦、 } int main() { a = 3;//重新賦值 b = 9;//重新賦值 printf("a=%d\n", a); printf("b=%d\n", b); c(a, b); printf("a=%d\n", a);//不受區域變數的影響 printf("b=%d\n", b);//不受區域變數的影響 } -
、
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269.html
標籤:C
