Maison > Article > développement back-end > Distinguer les expressions constantes C++, const et constexpr (avec code)
L'expression constante fait référence à une expression dont la valeur ne changera pas et le résultat du calcul peut être obtenu pendant le processus de compilation. Il peut être évalué au au moment de la compilation expression.
#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; }Le code ci-dessus peut être compilé normalement. montre que ce qui est déclaré par const n'est pas forcément une expression constante ! Le nouveau standard C++11 stipule que les variables peuvent être déclarées comme type constexpr
afin que le compilateur puisse vérifier si la valeur de la variable est une expression constante . La déclaration du spécificateur peut obtenir la valeur d'une fonction ou d'une variable au constexpr
moment de la compilation . Une variable déclarée comme constexpr doit être une constante et doit être initialisée avec une expression constante.
#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; La compilation signalera une erreur ! Exemple 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; }Articles connexes :
Partagez plusieurs exemples d'expressions régulières couramment utilisées en C#
PHP définit les constantes, la différence entre const et définir
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!