深刻理解 修飾變數 關鍵字

2022-03-26 07:31:10 字數 909 閱讀 7845

①全域性的變數

②全域性的常量

③坑如果全域性變數被修飾為全域性常量,那麼也應該應用全域性常量---加const

- (1)巨集名一般用大寫

- (2)使用巨集可提高程式的通用性和易讀性,減少不一致性,減少輸入錯誤和便於修改。例如:陣列大小常用巨集定義

- (3)預處理是在編譯之前的處理,而編譯工作的任務之一就是語法檢查,預處理不做語法檢查。

- (4)巨集定義末尾不加分號;

- (5)巨集定義寫在函式的花括號外邊,作用域為其後的程式,通常在檔案的最開頭。

- (6)可以用#undef命令終止巨集定義的作用域

- (7)巨集定義可以巢狀

- (8)字串" "中永遠不包含巨集

- (9)巨集定義不分配記憶體,變數定義分配記憶體。

- (10)巨集定義不存在型別問題,它的引數也是無型別的。

#define str(str) #str

#用於把巨集定義中的引數兩端加上字串的""

比如,這裡str(myname)會被替換成"myname"

#define wide(str) l##str

則會將形參str的前面加上l

比如:wide("abc")就會被替換成l"abc"

如果有#define fun(a,b) vo##a##b()

那麼fun(id ma,in)會被替換成void main()

巨集定義的值,在程式中是不可改變的值,而且在引用的時候會分配臨時記憶體空間①全域性變數當沒有其他關鍵字修飾時。他定義的值可以在其他地方更改,但是好處是只分配乙份記憶體空間。

②當全域性變數被const關鍵字修飾時。他定義的是常量,他的值不能在其他地方更改,而且在記憶體中也只占用乙份記憶體空間。①.修飾區域性變數

②.修飾全域性變數

synchronized關鍵字的深刻理解

synchronized其實就是加鎖的意思 有兩種加鎖方式 1,給當前物件加鎖 2,給當前物件對應的class例項加鎖 看看第一種加鎖方式 class m public synchronized void m2 這是給物件加鎖的第一種方式 比如產生了乙個物件,m m new m 此時兩個執行緒a,b...

final關鍵字修飾的變數

final意義 最終的,不可改變的。1 修飾變數,為常量,值不可變 2 修飾物件,值可變,引用不變 3 修飾方法,方法不可重寫 4 修飾類,無子類,不可以被繼承,更不可能被重寫。1.final修飾的基本型別變數必須賦值,但是只能賦值一次 可以在宣告時顯示初始化賦值,或者在構造方法中初始化賦值,或者在...

this關鍵字 static變數 理解

this關鍵字 1.為什麼不能在構造方法中出現該物件?a.現有類程式先載入類 由建立物件 p1 b.同乙個類可以建立多個物件 既然可以有p1 p2 p3 要想在類中體現出物件 引入this關鍵字 q 當我的成員變數名與形參名相同了?answer this 區分形參和成員變數 2.this的作用?th...