C 常量表示式小結

2021-07-23 08:00:47 字數 513 閱讀 8685

1   定義為constexpr型別的物件一般為字面值型別(算術型別,引用,指標等);

算術型別

2   宣告乙個constexpr型別必須用constexpr初始化;

3   constexpr指標必須初始化為nullptr或0或是存放在固定位址中的變數;

4  constexpr指標存放的位址不能改動,一般用來指向函式體之外定義的變數;

5  constexpr引用一般用來繫結到定義在函式內部但範圍超出函式本身的變數(即使函式執行結束,變數也仍然存在。一般函式結束,區域性變數就被銷毀)可認為這種變數存放在固     定的位址中。

6 constexpr宣告的指標僅指指標為常量,但指標指向的物件可變。

const int *p=nullptr;  p是乙個指向整型常量的指標

constexpr int *q=nullptr; q是乙個指向整型的常量指標(注意區分const和constexpr的不同)

參考:c++primer 第五版(p58,constexpr和常量表示式)

常量表示式

字面值 是乙個不能改變的值,如數字 字元 字串等。單引號內的是字元字面值,雙引號內的是字串字面值。字面值型別 literal type 算數型別 引用和指標等。常量表示式 const experssion 是指 1 值不會改變 並且 2 在編譯過程就能得到計算結果的表示式。字面量屬於常量表示式,用常...

常量表示式

為了使函式獲取編譯時計算的能力,你必須指定constexpr關鍵字到這個函式。constexpr int multiply int x,int y 將在編譯時計算 const int val multiply 10,10 除了編譯時計算的效能優化,constexpr的另外乙個優勢是,它允許函式被應用...

c 常量和常量表示式

const,預設情況下僅在檔案內有效 const int i 12 const引用 對常量的引用不能被用作修改它所繫結的物件 const int ci 5 const int rci ci rci 90 錯誤 不能修改 允許常量引用繫結到非常量的物件 字面值或表示式上 int i 20 const ...