#define是在預編譯階段就定義的常量,不占用記憶體空間;
const可以在程式的任何時候定義,是乙個全域性的常量,放在記憶體的static部分。
#define巨集定義沒有指定的型別,而const在定義時就指定了常量的型別。
const int *p; //p可變,p指向的物件不可變
int const*p; //p可變,p指向的物件不可變
(忽略型別,誰近誰不變)
int *const p; //p不可變,p指向的物件可變
const int *const p; //指標p和p指向的物件都不可變
#define在使用是不檢查其型別,而const在使用時像變數一樣檢查其型別,編譯按照變數的處理方式對待,只是存放的位置不同。
define巨集定義和const常量定義之間的區別
define部分 巨集不僅可以用來代替常數值,還可以用來代替表示式,甚至是 段。巨集的功能很強大,但也容易出錯,所以其利弊大小頗有爭議。巨集的語法為 define 巨集名稱 巨集值 注意,巨集定義不是c或c 嚴格意義上的語句,所以其行末不用加分號結束。作為一種建議和一種廣大程式設計師共同的習慣,巨集...
define巨集定義和const常量定義之間的區別
用巨集表示常數 假如我們要寫乙個有關圓的種種計算的程式,那麼 3.14159 值會被瀕繁用到。我們顯然沒有理由去改 的值,所以應該將它當成乙個常量對待,那麼,我們是否就不得不一遍一遍地寫3.14159這一長串的數呢?必須有個偷懶的方法,並且要提倡這個偷懶,因為多次寫3.14159,難免哪次就寫錯了。...
define巨集定義和const定義之間的區別
define巨集定義和const定義之間的區別 define部分 巨集不僅可以用來代替常數值,還可以用來代替表示式,甚至是 段。巨集的功能很強大,但也容易出錯,所以其利弊大小頗有爭議。巨集的語法為 define 巨集名稱 巨集值 注意,巨集定義不是c或c 嚴格意義上的語句,所以其行末不用加分號結束。...