rror C2440: 'initializing' : cannot convert from 'const int' to 'int &'

baiye1134 2010-09-07 05:31:05
如上:
#include<iostream.h>
const int a=188;
void main()
{
double n1=18;
double &n2=n1;
n2=10.18;
cout<<"n1="<<n1<<", "<<"n2="<<n2<<endl;
double &n3=n2;
n2=11.118;
cout<<"n1="<<n1<<", "<<"n2="<<n2<<", "<<"n3="<<n3<<endl;
double* ptr=&n1;
double* &p=ptr;
*p=18.218;
cout<<"n1="<<n1<<", "<<"n2="<<n2<<", "<<"n3="<<n3<<endl;
cout<<"*ptr="<<*ptr<<", "<<"*p="<<*p<<endl;
cout<<"&n1="<<&n1<<endl;
cout<<"*&n1="<<*&n1<<endl;
int &b=a;
cout<<"a="<<a<<endl;
}


。。。求为什么出错?
...全文
514 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mskmc_mc 2010-09-07
  • 打赏
  • 举报
回复
double* &p=ptr;

int &b=a;


改为 double * p=ptr;
const int &b=a;
  • 打赏
  • 举报
回复
int &b=a;
a是常量b是可变的。。一旦改变b的值就相当于对a进行改变。。。但是a是常量。。当然要避免这种事情发生。。。这里的问题。。
yh_no_code 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zengxianliang 的回复:]
编译器说的很明白了
int &b=a;
不能用一个非const的引用来指向const类型的变量,要不然const类型的变量不就可以被修改了
[/Quote]

类型要一致!
黑泡泡选手 2010-09-07
  • 打赏
  • 举报
回复
嗯,楼上几位的答案很精辟!
ZengXianLiang 2010-09-07
  • 打赏
  • 举报
回复
编译器说的很明白了
int &b=a;
不能用一个非const的引用来指向const类型的变量,要不然const类型的变量不就可以被修改了
  • 打赏
  • 举报
回复
int &b=a;
改成
const int &b=a;
arong1234 2010-09-07
  • 打赏
  • 举报
回复
a是常量,不能给引用初始化,int & b =a 是不合法的,应该是const int & b=a;
justkk 2010-09-07
  • 打赏
  • 举报
回复
哪一行出错?

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧