为什么在初始化期间需要初始化引用。如果没有初始化,则会抛出错误。是const数据应始终使用值初始化。为什么它只用于常量,并且不需要在声明期间初始化变量。
编辑:
#include<stdio.h>
int main()
{
int a=10,b=12;
int &c=a;
printf("%d\n",a);
c=b;
printf("%d\n",a);
printf("%d\n",c);
return 0;
}
这是我使用引用的c程序。我错了吗?
答案 0 :(得分:2)
在C中没有参考。你可能意味着地址运营商: http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Faddre.htm
答案 1 :(得分:1)
就是这样。有一些指针不必初始化,可以稍后分配给。引用可以被认为是对象的同义词 - 你不能没有任何同义词。
通常,您必须初始化以后无法分配的任何内容 - 例如常量和引用。如果你被允许 不 来初始化它们,那么你应该被允许稍后为它们分配一个新值,这将破坏整个目的
答案 2 :(得分:1)
您发布的代码无法编译为C程序,因为C中没有引用。
要使其编译为C,您必须对其进行修改:
#include<stdio.h>
int main()
{
int a=10,b=12;
int *c=&a;
printf("%d\n",a);
*c=b;
printf("%d\n",a);
printf("%d\n",*c);
return 0;
}
对于C ++引用,需要初始化引用的事实是指针和引用之间的主要区别之一。
指针可以是NULL或无效,引用不能(实际上,您可以生成无效引用,但编译器应该警告您)。在某种程度上,引用作为别名。通过编写int a; int &b=a;
,您现在有一个变量(或内存位置)的两个名称。