在声明期间初始化引用

initialising references during declaration

本文关键字:初始化 引用 声明      更新时间:2023-10-16

为什么需要在初始化过程中初始化引用?如果未初始化,则抛出错误。如果它是常量,数据应该总是用一个值初始化。为什么只使用常量,而不需要在声明过程中初始化变量?

编辑:

#include<stdio.h>
int main()
{
    int a=10,b=12;
    int &c=a;
    printf("%dn",a);
    c=b;
    printf("%dn",a);
    printf("%dn",c);
    return 0;
}

这是一个c程序,我使用的参考。我错了吗?

在C语言中没有引用。你可能是指地址操作符:http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Faddre.htm

你发布的代码不能被编译为C程序,因为在C中没有引用。

要使它编译成C语言,你必须修改它:

#include<stdio.h>
int main()
{
    int a=10,b=12;
    int *c=&a;
    printf("%dn",a);
    *c=b;
    printf("%dn",a);
    printf("%dn",*c);
    return 0;
}

对于c++引用,引用需要初始化是指针和引用的主要区别之一。

指针可以为NULL或无效,而引用不能(实际上,您可以生成无效的引用,但编译器应该对此发出警告)。在某种程度上,引用就像别名一样工作。通过编写int a; int &b=a;,您现在有一个变量(或内存位置)的两个名称。

事情就是这样。有些指针不需要初始化,以后可以赋值。引用可以被认为是对象的同义词——你不能没有对象的同义词。

一般来说,你必须初始化任何你以后不能赋值的东西——例如常量和引用。如果您允许而不是初始化它们,那么您应该允许稍后为它们分配新值,这会破坏整个目的