level 5
int a = 8,b;
const decltype((b))c = a;
这样声明赋值后C的话应该是常量引用哦,为什么还可以改变c的值呢?
2017年12月12日 12点12分
1
level 15
const不能作用于引用,某些情况下(就比如你这种情况)const会被忽略。通常所谓的const int&,const作用于int,而不是int&。
2017年12月12日 14点12分
2
难道就是当要绑定const变量时需要在引用前面写上const。在绑定非const变量时加不加const都一样,都可以通过引用取改变变量的值。对吗?
2017年12月13日 08点12分
刚试了,声明为const引用后就无法通过该引用取改变非const变量的值了。如下图
2017年12月13日 08点12分
level 1
onst decltype((b))c = a; 这是变量的初始化, 不是赋值。
2017年12月13日 08点12分
4
对是初始化,但是我想解决的是const问题。
2017年12月13日 08点12分
level 1
const 定义后是常量, 什么是常量呢 就是可以在编译过程中完全替换其中的标记符号。
你可以对一个数值进行改变么,当然不可以。
&的引用,用在这里似乎有点问题。一般的&,引用在参数中,代表这个参数在传递过程中不用副本,而是用本身,这样大体的意思。(其中涉及转换不用理解)
2017年12月13日 08点12分
5
level 1
&一般是用在变量的吧。在一些作为参数的时候可能会出现const & 某些变量,的时候,这是有破除参数传递保护的意思,而不是用在初始化const上。
2017年12月13日 08点12分
6
level 1
回复 浙江舟山007 :我认为 const & ,&在初始化是无效的。 其他的const &应该是在作为参数的时候出现的。
2017年12月13日 08点12分
7
const decltype((b))c = a;为什么可以改变c的值,而const int b=a;无法改变b的值。decltype((b))c的意思不是是将c设置为引用吗?应该和const int b=a;等价啊。
2017年12月13日 10点12分