c++ 左值右值 函数模板
1.先看一段代码,这就是一种函数模板的用法,但是红色的部分如果把a写成a++或者写成一个常量比如1,都是编译不过的,因为如果是a++的话,实际上首先是取得a的
值0,而0作为一个常量没有地址。写成1也同理,但是写成++a是没有问题的。上面的理解是很粗浅的,深入理解需要涉及左值右值的概念。
template<typename T> T min(T &x, T &y) { return (x < y) ? x : y; } int main() { using namespace std; int a = 0; int b = 5; cout << (min(a, b)); cin.get(); return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步