C++ 中:const int * a 和 const int * & a的区别。
4个回答
展开全部
const int *a;
a是一个指针,指向const int类型的变量。
const int * &a;
a是一个引用,引用的是一个 const int *的指针。
例如:
int a = 10;
const int *pa = &a;
const int * &rpa = pa;
cout<< *pa <<endl;
cout<< *rpa <<endl;
pa是一个的类型是const int *,指向a,const的意思是不能修改pa指向的变量的值。
rpa是一个const int * &类型,是pa的一个引用,用法跟pa一样。
这里就是弄清楚引用,例如
int a = 10;
int &ra = a;
ra就是a的引用,ra实际上指向a的地址,但是它不是指针,是引用,是a的别名,用法跟a一样。
cout<<ra;
输入也是10.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
const int * a 是整型常量指针,它所指向的对象值不可改变,
const int *&a是整型常量指针的引用,它定义了一个整型常量指针的引用(或别名)。
他们两个的主要区别:第二个在声明时必须初始化,它本身并不占用内存,只是它所指向对象的别名。引用在初始化后不可修改。
第一个可以只声明不初始化,在使用时再赋值即可。在声明后就对其分配了内存空间。
注:指针和引用的主要区别:
1、可以定义指针的引用,没有引用的指针
2、可以定义数组的引用,没有引用的数组
3、可以定义指向空值的指针,不能定义指向空值的引用。
希望对你有所帮助!
const int *&a是整型常量指针的引用,它定义了一个整型常量指针的引用(或别名)。
他们两个的主要区别:第二个在声明时必须初始化,它本身并不占用内存,只是它所指向对象的别名。引用在初始化后不可修改。
第一个可以只声明不初始化,在使用时再赋值即可。在声明后就对其分配了内存空间。
注:指针和引用的主要区别:
1、可以定义指针的引用,没有引用的指针
2、可以定义数组的引用,没有引用的数组
3、可以定义指向空值的指针,不能定义指向空值的引用。
希望对你有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
const int * & a是引用
两个a用法差不多,但意义有区别
引用相当于别名,具体参见C++相关说明
两个a用法差不多,但意义有区别
引用相当于别名,具体参见C++相关说明
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询