建立一个const double数组,通过引用每个数组的下边且用const_cast把每个元素分别转为non_const,然后对每个元素赋值
关于这个const 和 const_cast 还是比较麻烦的
认真查过哟~
首先 const_cast 无法对于变量的脱 const,只能对指针和引用进行操作。
所以,你可以发现一个神奇的事情:
const int a=789 ;
int &b = const_cast<int&>(a);
int *c = const_cast<int*>(&a);
cout<<"a="<<a<<endl;
cout<<"&b="<<b<<endl;
cout<<"*c="<<*c<<endl;
cout << "&a="<<&a<<endl;
cout << "&b="<<&b<<endl;
cout << "c="<<c<<endl;
cout<<endl;
b = 987;
*c = 999;
cout << "a="<<a<<endl;
cout << "b="<<b<<endl;
cout << "*c="<<*c<<endl;
cout << "&a="<<&a<<endl;
cout << "&b="<<&b<<endl;
cout << "c="<<c<<endl;
非常好玩,
然后对于这道题,
因为数组是指针的,
所以还是可以解决的,
我的做法:
const double arr[3] = {1.2,3.3,4.5};
int i;
for(i=0;i<3;++i)
cout<<arr[i]<<" ";
cout<<endl;
double& temp = const_cast<double&>(arr[0]);
for(i=0;i<3;++i)
cout<<arr[i]<<" ";
cout<<endl;
用了个中间变量来改,直接改没成功。。
希望能帮到你呀~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。