C 中const和 define的對比

2021-08-18 02:41:05 字數 632 閱讀 8670

const常量分配記憶體的時機:編譯器編譯期間。

第一種情況,當沒有對const修飾的常量進行取位址或其它檔案也沒使用此常量時,不會對const常量分配記憶體。

#include #include int main()

輸出結果:

可以看出,變數a和c的位址是連續的,並沒有給常量b分配記憶體。

第二種情況,對const常量使用取位址,會分配記憶體。

#include #include int main()

輸出結果:

從輸出結果可以看出, 對const常量b分配了記憶體空間。而且b的位址處於a和c之間。

const的用途:

可以用來替換#define巨集定義。

#include #include int main() //const和#define相同之處

; return 0;

}

c++的const常量和#define巨集定義不同的地方:

1.const常量是由編譯器處理的,提供型別檢查和作用域檢查。

2.#define是由預處理處理的,單純的文字替換。

C 程式設計中const和 define的區別

1 編譯器處理方式不同 define巨集是在預處理階段展開。const常量是編譯執行階段使用。2 型別和安全檢查不同 define巨集沒有型別,不做任何型別檢查,僅僅是展開。const常量有具體的型別,在編譯階段會執行型別檢查。3 儲存方式不同 define巨集僅僅是展開,有多少地方使用,就展開多少...

php中define和const的區別

常量前面沒有美元符號 常量只能用define 函式或const定義,而不能通過賦值語句 常量可以不用理會變數的作用域而在任何地方定義和訪問 常量一旦定義就不能被重新定義或者取消定義 常量的值只能是標量。const的使用 define的使用 const用於類常量的定義 define不可以用於類常量的定...

PHP中的Define和Const區別

我們經常把不經常變的值定義成常量,常量一般用全部大寫來表示,前面不加美元符號,那麼define和const有什麼區別呢?常量是乙個簡單的識別符號。在指令碼執行期間該值不能改變 除了所謂的魔術常量,他們其實不是常量 常量預設大小寫敏感。通常常量識別符號總是大寫的。可以用define 函式來定義常量。在...