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 函式來定義常量。在...