const修飾變數:
在c語言中const修飾的變數是唯讀的,其本質還是變數,不是常量。
const修飾的變數會在記憶體占用空間,不能作為左值進行賦值。
本質上const只對編譯器有用,在執行時無用。因此const修飾的變數可以在程式執行時,通過指針對其進行改變。
const修飾陣列:
在c語言中const修飾的陣列是唯讀的
const修飾的陣列空間內容不可被改變
const修飾指標:
const int* p; //p可變,p指向的內容不可變
int const* p; //p可變,p指向的內容不可變
int* const p; //p不可變,p指向的內容可變
const int* const p; //p和p指向的內容都不可變
口訣:左資料右指標為常量
當const出現在*號左邊時指標指向的資料為常量
當const出現在*後右邊時指標本身為常量,只能指向這乙個位址
const修飾函式引數和返回值:
const修飾函式引數表示在函式體內不希望改變引數的值。
const修飾函式返回值表示返回值不可改變,多用於返回指標的情形。
volatile可理解為「編譯器警告指示字」。
volatile用於告訴編譯器必須每次去記憶體中取變數值。
volatile主要修飾可能被多個執行緒訪問的變數。
volatile也可以修飾可能被未知因素更改的變數。
舉例說明:
在執行時,上面例子中的obj一直是10,如果sleep之後有乙個硬體中斷改變了obj的值,如果沒有volatile對obj進行修飾,那麼新的值將無法賦值給b,b仍然等於10.在開始應該定義:
volatile int obj = 10;
注意:
const和volatile兩個關鍵字可以同時修飾乙個變數,
const volatile int i = 0;
該變數不能作為左值,編譯器必須從記憶體中尋找該變數的內容。
C語言關鍵字const volatile的詳細描述
以const關鍵字修飾的物件,其值不能通過賦值或遞增 遞減進行修改。但是可以通過指標訪問的方式修改const修飾物件的值 也會報警告 const int num 20 num 10 賦值出錯 num 遞增出錯 num 遞減出錯 int p p 100 可以通過位址訪問的方式修改const修飾物件的值...
Codeup關鍵路徑 關鍵路徑
時間限制 1 sec 記憶體限制 128 mb 提交 261 解決 90 提交 狀態 討論版 命題人 外部匯入 描述 圖的連線邊上的資料表示其權值,帶權值的圖稱作網。上圖可描述為頂點集為 a,b,c,d,e 邊集及其權值為 始點,終點 權值 a b 3 a c 2 b d 5 c d 7 c e 4...
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...