const和constexpr
int a = 10; const int& b = a; a = 20; std::cout << b << std::endl;//输出为20,表示虽然b用const修饰不能直接修改b但是可以通过修改b的引用a来修改b int a1 = 10; constexpr int& b1 = a1;//这样写会提示错误
c++11使用的constexpr更加强调常量,而之前的const更多是强调只读。因此遇到确定是常量的时候应该声明为constexpr。
比如使用函数传参时,int func(const int x)这里只是表示传入的x是只读的并不表示是一个常量,在该函数中使用x来声明数组长度会报错。如果使用在函数中再次使用const int a=x;此时的a可以作为数组长度。
constexpr int sqr1(int arg){//可用作数组长度 return arg*arg; } const int sqr2(int arg){//不可用作数组长度 return arg*arg; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端