在声明期间初始化引用
initialising references during declaration
为什么需要在初始化过程中初始化引用?如果未初始化,则抛出错误。如果它是常量,数据应该总是用一个值初始化。为什么只使用常量,而不需要在声明过程中初始化变量?
编辑:
#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;
,您现在有一个变量(或内存位置)的两个名称。
事情就是这样。有些指针不需要初始化,以后可以赋值。引用可以被认为是对象的同义词——你不能没有对象的同义词。
一般来说,你必须初始化任何你以后不能赋值的东西——例如常量和引用。如果您允许而不是初始化它们,那么您应该允许稍后为它们分配新值,这会破坏整个目的
相关文章:
- C++在构造函数处用表达式初始化引用
- 我可以从取消引用"new"的返回值初始化引用吗
- 通过用户定义的转换初始化引用
- 为什么我可以在初始化引用后重新绑定引用?
- TBB 编译器错误 -"my_task":必须初始化引用
- Visual Studio 2017 允许在构造函数中使用自身初始化引用成员.真的是合法的C++吗?
- 为构造函数初始化引用实例变量提供默认值
- 在构造过程中获取类成员的未初始化引用是否合法
- 在C++中初始化引用
- 在动态分配的结构中初始化引用
- 使用三元运算符初始化引用变量
- 如何在 c++ 中显式初始化引用
- 初始化引用时何时以及为何获得副本
- 初始化C++引用-为什么不使用运算符的地址
- 在C++中初始化引用和变量
- 在函数参数中分配/初始化引用
- 在 C++ 中初始化引用不起作用,但初始化 const 引用有效,为什么?
- 类组合构造函数 d 必须显式初始化引用成员
- 用对tuple的引用初始化引用的元组
- 为什么在c++中不能重新初始化引用