auto有时不auto
作者:互联网
2026-03-05
反直觉C++, 欢迎github star
auto有时不auto
#include
int main() {
int a = 1;
int& b = a;
auto c = a;
auto d = b;
auto& e = b;
std::cout << "a:" << a << " b:" << b << " c:" << c << " d:" << d << " e:" << e << std::endl;
a = 10;
std::cout << "a:" << a << " b:" << b << " c:" << c << " d:" << d << " e:" << e << std::endl;
}
输出
a:1 b:1 c:1 d:1 e:1
a:10 b:10 c:1 d:1 e:10
变量a是int类型,变量b是int&类型,变量c是int类型(同a),变量d是int类型(与b不同),变量e是int类型(同b),auto没有把d推导为和b相同的类型,有点反直觉。
奇怪的知识增加了
如果希望推演出来的auto类型为引用(左值引用),需要明确指出,就像变量e定义的那样:
auto& e = b;
如果希望推演出来的auto类型携带const,也需要明确指出:
const auto ca = a; // ca是const int
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
指针、引用和常量的关系
03/26
C++学习笔记(33):智能指针(工厂函数)
03/25
学而时习之:C++中的标准模板5.2
03/25
学而时习之:C++中的预处理
03/23
C++ RAII:从“人肉记账”到“自动保姆”的资源管理革命
03/23
告别 C 风格枚举:为什么你应该使用 enum class
03/22
从智能指针窥见现代C++的生存法则:告别内存泄漏,这篇就够了
03/22
C++学习笔记(30):智能指针(unique_ptr)
03/22
Leetcode第一题:用C++解决两数之和问题
03/20
static 关键字:从 C 到 C++,一篇文章彻底搞懂它的“七十二变”
03/20
AI精选
