每天一点C++——const和constexpr

C++11中添加了一个constexpr的关键字,今天简单介绍一下。
const关键字我们在前面的一篇文章中已经介绍过了:https://blog.csdn.net/itlilyer/article/details/109201275

const可以修饰变量、参数、返回值、函数等等,主要实现两种表达:一是这个值不可以被修改;二是这是个常量。
constexpr是C++11新加入的用来表示该值在编译阶段就可以确定,可以是编译宏的值,#define的值,常量值等。
看下下面的代码:

#include <iostream>

constexpr int func1(const int a) {
    
    
    return 	a + 1;
}
int func(const int a) {
    
    
   // a = 5; //error, 不可以被修改
	const int b = a + 1;  //ok
//	constexpr int c = a + 2;   //error  编译时不能确定a的值
    return 0;
}
int main() {
    
    
    const int a = 6; //常量
	constexpr int b = 7;  //常量
	
	func(a);
	int res = func1(b);
	
	std::cout << "res = " << res << "\n";
    return 0;
}

代码中可以看到constexpr可以修饰函数返回值,这个值不是编译时确定的,这个时候该函数就和普通函数一样了。

おすすめ

転載: blog.csdn.net/itlilyer/article/details/119207372