const 修饰函数返回值作用
修饰字面常量:
const int getval(void) { return 100; }
该函数返回值 const 可有可无。
修饰指针:
const int* getptr(void) { int *p = (int *)0xCC; return p; } int main() { const int *p = getptr();//ok int *q = getptr();//error ... return 0; }
指针其指向内容不能被修改。
修饰运算符重载返回值:
函数返回为引用时,如果不想修改函数调用后的值,则用const &const &。 函数返回值引用常量表示不能将函数调用表达式作为左值使用。例如:
int & min( int & i, int & j);
可以对min函数调用进行赋值,因为它返回的是左值。例如min(a,b)=4min(a,b)=4或者min(a,b)+=min(b,a)+5min(a,b)+=min(b,a)+5,对大多数编译器都是合法的(但有些编译器会直接报错或者warning)。
但是,如果对函数的返回值限定为 const 的:const int & min ( int & i, int &j ),那么,就不能对 min ( a, b ) 调用进行赋值了。
修饰运算符重载返回值:
A operator+(const A& a1, const A&a2); ... A a1, a2, a3; a1 + a2 = a3; // 不加 const, 该弱智行为合法
若不加 const 修饰,上述奇怪行为是合法的。
分类:
C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)