为什么参考变量在声明时需要初始化

Why reference variable needs to initialise while declaring

本文关键字:初始化 声明 参考 变量 为什么      更新时间:2023-10-16

这是一个非常简单的问题,我有疑问,我想问所有人,

我们知道我们可以将参考声明为

int bar;
int &foo = bar;

我的问题是这种初始化背后的原因是什么?为什么必须这?另外,为什么我不需要在声明时初始指针?

int bar;
int *p;
p = &bar;

根据定义,参考必须参考 与有效的对象或POD类型。不允许非直接化,特别是什么都没有。另外,一旦初始化,它就无法更改以指代其他东西。因此,初始化它是在声明中唯一有意义的地方(如果是成员变量,则是类构造函数的初始化器列表(。

其他语言允许null引用和重新分配引用,但这不是它们在C 中的工作方式。

虽然指针可以为null(即,指向什么都没有指向(,但参考必须始终指向某物。它没有零状态。因此,它不能在不被初始化的情况下创建。