引用求解

whowho 2003-02-20 12:04:21
typedef const int * pt;
void main()
{
const int val=1024;
pt pt_z;
pt_z=&val;
pt &pt_ref=&val;
}
引用不是指向一个常量,而是指向一个非常量指针
PT_REF影响的只是指针本身,为什么要将PT_RIF定义成 PT CONST&PT_REF=&VAL;
...全文
68 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liao2001 2003-02-20
  • 打赏
  • 举报
回复
en
snowman_pc 2003-02-20
  • 打赏
  • 举报
回复
不太理解,

quickball 2003-02-20
  • 打赏
  • 举报
回复
因为val是一个常量

PT CONST&PT_REF=&VAL的意思是:一个指向常量的可变的引用。也就是说,pt_ref可以改变它引用的对象。
yatuor 2003-02-20
  • 打赏
  • 举报
回复
const int * a;//不能通过a修改指向的数
int * const a;//不能修改a本身
北极猩猩 2003-02-20
  • 打赏
  • 举报
回复
&val是一个指针常量嘛,难道一个变量在内存中的位置还会改变不成?
chesshappy 2003-02-20
  • 打赏
  • 举报
回复
不明白你要说的具体意思, 但是你的这段程序是有问题的:
pt &pt_ref=&val;
这条语句根本就是错误的
zhjhe 2003-02-20
  • 打赏
  • 举报
回复
我想您应该将问题描叙得更为详细一些。
chinajiji 2003-02-20
  • 打赏
  • 举报
回复
pt &pt_ref=&val;
在VC6.0上也有编译错误
chinajiji 2003-02-20
  • 打赏
  • 举报
回复
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef const int * pt;
int main(int argc, char *argv[])
{
const int val=1024;
pt pt_z;
pt_z=&val;
pt &pt_ref=&val; //严格来说,这是不正确的,因为pt是非const指针,
//而&val是一个临时指针,从语意上讲&val == int * const temp;
//引用pt_ref想绑定到一个临时指针量termp上去,而定义ptr_ref
//所引用的类型是pt,pt是非const 指针,所以,在C++ builder中有警告
//信息,在DEV-C++有编译错;
typedef const int* const pt2; //这样来更正就完全正确了
pt2 &pt_ref2 = &val;
cout << "pt_ref = " << pt_ref << ",*pt_ref = " << *pt_ref << endl;
cout << "pt_ref2 = " << pt_ref2 << ",*pt_ref2 = " << *pt_ref2 << endl;
system("PAUSE");
return 0;
}
/* 输出结果:
pt_ref = 1245064,*pt_ref = 1024
pt_ref2 = 1245064,*pt_ref2 = 1024
请按任意键继续 . . .
*/
cenlu99 2003-02-20
  • 打赏
  • 举报
回复
这段代码,在c++ builder6下运行没问题呀!
pt &pt_ref=&val 等价与:const int* &pt_ref=&val;其中&val为一常量所以应该没有问题呀!
ltxd 2003-02-20
  • 打赏
  • 举报
回复
typedef const int * pt;
void main()
{
const int val=1024;
pt pt_z;
pt_z=&val;
pt &pt_ref=&val;
}

pt &pt_ref=&val; I think the compiler will give u a error, because reference must refer to a variable, can not be a constance.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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