Heim > Artikel > Backend-Entwicklung > Unterscheiden Sie zwischen konstanten C++-Ausdrücken, const und constexpr (mit Code)
Konstanter Ausdruck bezieht sich auf einen Ausdruck, dessen Wert sich nicht ändert und dessen Berechnungsergebnis während des Kompilierungsprozesses erhalten werden kann. Es kann zur Kompilierungszeit Ausdruck.
#include <iostream> using namespace std; int main() { const int a1 = 10; // a1是常量表达式。 const int a2 = a1 + 20; // a2是常量表达式 int a3 = 5; // a3不是常量表达式 const int a4 = a3; // a4不是常量表达式,因为a3程序的执行到达其所在的声明处时才初始化,所以变量a4的值程序运行时才知道。但编译没问题! return 0; }Der obige Code kann normal kompiliert werden. zeigt, dass das, was von const deklariert wird, nicht unbedingt ein konstanter Ausdruck ist! Der neue C++11-Standard schreibt vor, dass Variablen als constexpr-Typ
deklariert werden dürfen, damit der Compiler überprüfen kann, ob der Wert der Variablen ein konstanter Ausdruck ist. Die Spezifikatordeklaration kann den Wert einer Funktion oder Variablen zur constexpr
Kompilierzeit erhalten. Eine als constexpr deklarierte Variable muss eine Konstante sein und mit einem konstanten Ausdruck initialisiert werden.
#include <iostream> using namespace std; int main() { const int a1 = 10; // a1是常量表达式。 const int a2 = a1 + 20; // a2是常量表达式 int a3 = 5; // a3不是常量表达式 constexpr int a4 = a3; // a4不是常量表达式,因为a3程序的执行到达其所在的声明处时才初始化,所以变量a4的值程序运行时才知道。编译报错! return 0; }constexpr int a4 = a3; Die Kompilierung meldet einen Fehler! Beispiel 3:
#include <iostream> using namespace std; int main() { const int a1 = 10; // a1是常量表达式。 const int a2 = a1 + 20; // a2是常量表达式 int a3 = 5; // a3不是常量表达式 const int a4 = a3; // a4不是常量表达式,因为a3程序的执行到达其所在的声明处时才初始化,所以变量a4的值程序运行时才知道。编译报错! char arr1[a2]; // 没问题 char arr2['y']; // 没问题,'y'的ASCII码为121,相当于 char arr2[121]; char arr3[a4]; // 编译报错,因为a4不是常量表达式 return 0; }Verwandte Artikel:
Teilen Sie mehrere Beispiele häufig verwendeter regulärer Ausdrücke in C#
PHP definiert Konstanten, den Unterschied zwischen const und define
Das obige ist der detaillierte Inhalt vonUnterscheiden Sie zwischen konstanten C++-Ausdrücken, const und constexpr (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!