用const和引用声明变量
Variable declaration with const and reference
我对带有引用的变量声明感到困惑。我读了一些页,这让我更困惑,所以宁愿在这里问。
我在一次c++面试中被问了4个问题;哪一个是错的,为什么?
(1) int & n;
(2) const int & n=15;
(3) float x; const int & n =x;
谁能解释一下哪个是不正确的,为什么?
tl;dr引用必须在声明时初始化(直接初始化或在类初始化时初始化)。
int& n;
这使得引用n
未初始化。引用必须在声明时初始化。
const int& n = 15;
这里没有问题。对const int
的引用初始化为15
float x; const int& n = x;
float
是可以的,但是不初始化是一个坏主意。引用n
被初始化为x
(浮点/整数转换适用),这也不是一个好主意。
引用必须始终初始化。
相关文章:
- 在疯狂的部分中声明变量
- 如何在C++中为高分辨率时钟声明变量?
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- CUDA 的性能取决于声明变量
- 如何在不为其声明变量的情况下获取和使用常量值的地址?
- C++声明变量时自动类型推断而不初始化
- 在不同循环中多次声明变量的优点
- 奇怪的错误 C2131 与 constexpr 声明变量
- 是否可以在 "if" 语句中声明变量?
- 在python-ctypes中声明变量并传递给dll函数
- 在递归函数C++中声明变量
- 只有一个定义/声明时标头声明变量的多堆定义错误
- 奇怪的未声明变量编译器错误
- 我在C++程序中声明变量时遇到问题
- 在命名空间中声明变量
- C++ lambda 按值捕获,而无需更早声明变量
- 声明变量以保存字符串列表时的内存分配
- 如何声明C 变量应突变
- 为什么允许在开关语句中声明变量?但不是声明 初始化
- 在同一命名空间中声明变量和函数是否出错?[C++]