C 全域性變數和區域性變數介紹

2021-10-16 17:32:09 字數 457 閱讀 6445

c++變數根據定義的位置的不同可將作用域分為6種:

全域性作用域

區域性作用域

語句作用域

類作用域

命名空間作用域

檔案作用域

全域性變數具:有全域性作用域,全域性變數只需要在乙個原始檔中定義,就可以作用於所有的原始檔。如果要在其他原始檔使用此變數則需要用extern關鍵字進行再次宣告。

靜態全域性變數:也具有全域性作用域,它與全域性變數的區別在於如果程式包含多個檔案的話,它的作用域只存在於自己定義的檔案中。

靜態全域性變數使用場景:防止全域性變數在其他原始檔中被使用

由於靜態全域性變數的作用域限於乙個原始檔內,只能為該原始檔內的函式公用,因此可以避免在其他原始檔中引起錯誤。

區域性變數:也只有區域性作用域,即只在函式執行期間存在函式結束後就自動**。

靜態區域性變數:具有區域性作用域,它只被初始化一次,自從第一次被初始化直到程式執行結束都一直存在。

C 全域性變數和區域性變數

一 為什麼靜態成員變數要通過類外初始化賦值?當將類的某個資料成員宣告為 static 時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態資料成員的用途之一是統計有多少個物件實際存在。靜...

全域性變數和區域性變數

全域性變數 可以被不同的函式 類或檔案呼叫的變數,在函式外定義。區域性變數 只能在函式內使用,定義在函式內。區域性變數的使用 class myclass def myfun num 12 print myfun num num 正確 def myfun2 num num 1 print mufun ...

全域性變數和區域性變數

區域性變數 在方法中開闢的變數,只在方法中有效 區域性變數在定義時不會初始化,要顯式的給它乙個值 如未給它乙個初始值,雖然編譯的時候會通過,但是執行的時候會產生為初始化錯誤!方法呼叫 執行完,區域性變數便會自動釋放。在方法內的語句塊中建立的變數在編譯時假如未初始,如若使用,也會報未初始化錯誤!呼叫的...