2 weixin 40980527 weixin_40980527 于 2017.11.15 14:48 提问

里面的int &r=i是什么意思

int &r=i具体是什么意思啊,&不是取地址符吗?还有const主要作用在哪些方面啊,才学c++的小白,求解图片说明

4个回答

ranyixu11
ranyixu11   2017.11.15 15:21

在C++中,&表示取地址操作符,也表示引用,具体看上下文环境。当&用作声明时,表示的是引用,其它时候表示取地址,如果声明的是指针类型,和C一样是*。
int a =1;
int &b = a;//&表示引用
int *c = &a;//c是int指针类型,&表示取地址

Little_Red_Rose
Little_Red_Rose   2017.11.15 15:57

第一个问题:因为p是一个指针并不是一个常量指针,所以写成“p=&a”编译会报错;
第二个问题:因为r是一个整型,不是一个常量整型,同上数据类型不一致,强行赋值是会报错的。
const__cast 这个函数是把常量变为普通变量的意思,只有经过转换才能赋值给普通的数据类型。
const这个限定符用的不是很多,推荐你去csdn上看看,大神的总结。

tjl121314
tjl121314   2017.11.15 16:57

看了下楼上的回答比较到位了,标C的时候你的第一个问题不会报错,可以修改,C++对语法要求更严格,
第二个问题,因为a是个常亮,所以引用也必须是一个常引用
const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。
(一)const修饰参数。const只能修饰输入参数。表示参数不能被修改
(二)const修饰函数返回值。表示返回值不能被修改
(三)const+成员函数。任何不修改数据成员的函数都应该声明为const类型,如果const成员函数修改了数据成员或者调用了其他函数修改数据成员,编译器都将报错!
(四)const 修饰变量,表示该变量不能被修改。

qq_16428831
qq_16428831   2017.11.15 15:12

指针r的地址保存了I的值

Csdn user default icon
上传中...
上传图片
插入图片