vc的问题 关于引用

为什么引用的时候要写成int&a=A或者int*a=&A?在int&a=A中,为什么能给a的地址赋值?在int*a=&A中,为什么a指针所指向的是一个变量的地址?指针所指... 为什么引用的时候要写成int &a=A或者int *a=&A?
在int &a=A中,为什么能给a的地址赋值?
在int *a=&A中,为什么a指针所指向的是一个变量的地址?指针所指向的不应该是一个变量本身吗?
展开
 我来答
糖二灰
2013-07-11 · TA获得超过3940个赞
知道小有建树答主
回答量:1052
采纳率:75%
帮助的人:1092万
展开全部
  1. 引用只能写成int &a=A

    int *a=&A这个不是引用,这是指针变量的定义并赋值。

    引用是C++里一种特殊的类型,可以理解为起别名的意思,int &a=A就是给A起一个别名叫a;

    a是没有开辟空间的,只是一个别名而已,不会产生开辟空间存储变量这种操作。

    而int *a=&A;这一句是先定义一个变量指针变量a,并开辟空间存储这个变量,然后把A的地址赋值给a,相当于a这个空间内存储的是A这个变量的地址。

  2. int &a=A;这个不存在给a的地址赋值,因为a就是A的别名,它没用新的地址,所有出现A的地方都能用a来代替,只是换个名字而已。

  3. int *a=&A; 这句,a的指针指向的是这个变量,不是变量的地址,只是把A的地址赋值给a而已,赋值和指向是不同的。

  4. 建议楼主再好好查看一下引用以及指针的资料,详细的阅读,你就会明白了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式