首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如上程序,那条语句会发生编译异常?并分析异常的原因

2012-08-22 
如下程序,那条语句会发生编译错误?并分析错误的原因。int i0,j1int &rirjint *p&i*p&r[解决办法

如下程序,那条语句会发生编译错误?并分析错误的原因。

  int i=0,j=1;
  int &r=i;
  r=j;
  int *p=&i;
  *p=&r; 


[解决办法]
*p=&r;

//*p为解引用 即是i的赋值操作i= 右边得是int类型
//&r为r的地址 类型为int*
//除非你强制转换 *p=(int)&r; i的值就会存r的地址;不然报错
[解决办法]
还有:
int i=0,j=1;
int &r=i; //这里是 “引用”,不是什么赋地址。。。。
r=j;
int *p=&i;
p=&r;
[解决办法]
int i=0,j=1;
int &r=i; 是引用,声明引用时必须对其进行初始化,指向一个已存在的对象,这句没问题
r=j; 引用一旦被初始化后,就不能改为指向其他对象。所以这句是错的
int *p=&i; 指针用地址初始化
p=&r; 
*p = 3; 这种形式后面要跟数值

热点排行