상수 표현식은 값이 변경되지 않는 표현식을 말하며 컴파일 과정 중 계산 결과를 얻을 수 있으며 컴파일 타임에 평가할 수 있습니다.
#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; }
으로 선언하여 컴파일러가 변수 값이 상수 표현식인지 확인할 수 있도록 규정하고 있습니다. 지정자 선언은 constexpr
컴파일 타임에서 함수나 변수의 값을 얻을 수 있습니다. constexpr로 선언된 변수는 상수여야 하며 상수 표현식으로 초기화되어야 합니다.
#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; }
#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; }
PHP에서 정의한 상수는 const와 정의의 차이점입니다.
위 내용은 C++ 상수 표현식, const 및 constexpr(코드 포함) 구별의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!