C++中,引用&变量是不分配内存空间吗?那么定义一个引用变量,如int& a

int& a这里的a是一个引用变量,居然说它没有分配内存空间?再怎么定义了这个a就应该有一个空间给装a啊???就类似定义一个指针,即使它不指向谁,但是它本身也占用内存啊,所以在这里我觉得引用变量是占用了空间?大家觉得呢?

没有分配。我觉得你产生误解的原因是你误解了声明一个引用变量的方式。int& a;这种写法是不对的,属于语法错误,声明一个引用变量是要给它初始值的,这就是引用变量特殊的地方:int i; int& a = i; 这样才对,也就是说,必须现有一个普通变量i,才能声明一个引用变量a来指向i,a本身只相当于一个标识,与变量名i没区别。你可以理解为一个变量有了两个名字。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-12
  指针信息是占用内存的,这部分内存是系统自动分配的,不需要你来操心它被放在哪里。通常我们说分配内存空间,是给你的变量内容使用的。你的变量可能是一串字符,一段文字,一个数值。这些是真正需要你分配空间的地方。
  就像宾馆一样,来了客人,开了房,就等于分配空间了。当然登记簿上是记了一笔,但是这个登记簿是由宾馆来管理的。按照什么格式,记了什么东西是宾馆管理方自己规定的。你住进房间了,人家给你登记为某先生。一开始别人来找你都问某先上在吗?后来住长了服务员都知道你是某公司某总。那么从他们从客人备注里就写上了这个信息。今后一提某公司某总,就知道是你了。这就是引用。并没给你新开房,就是给你加一别名,往本子里记一笔而已。房间并没有变动。
第2个回答  2013-12-17
引用只是编译过程的一个概念
由编译器决定
产生的机器码中,有些需要占内存,有些则不需要
在不同情形下,各有不同
第3个回答  2018-05-05
对啊 就是你说的那样。现在引用就是个指针,非说一点不占内存那是不可能的。
相似回答