
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指针所指向的是一个变量的地址?指针所指向的不应该是一个变量本身吗? 展开
在int &a=A中,为什么能给a的地址赋值?
在int *a=&A中,为什么a指针所指向的是一个变量的地址?指针所指向的不应该是一个变量本身吗? 展开
1个回答
展开全部
引用只能写成int &a=A
int *a=&A这个不是引用,这是指针变量的定义并赋值。
引用是C++里一种特殊的类型,可以理解为起别名的意思,int &a=A就是给A起一个别名叫a;
a是没有开辟空间的,只是一个别名而已,不会产生开辟空间存储变量这种操作。
而int *a=&A;这一句是先定义一个变量指针变量a,并开辟空间存储这个变量,然后把A的地址赋值给a,相当于a这个空间内存储的是A这个变量的地址。
int &a=A;这个不存在给a的地址赋值,因为a就是A的别名,它没用新的地址,所有出现A的地方都能用a来代替,只是换个名字而已。
int *a=&A; 这句,a的指针指向的是这个变量,不是变量的地址,只是把A的地址赋值给a而已,赋值和指向是不同的。
建议楼主再好好查看一下引用以及指针的资料,详细的阅读,你就会明白了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询