const指针的迷惑,万望指教

herogyf 2003-08-22 10:54:48
int main()
{
int var1;
const int *paa= &var1;
var1=9;
cout<<"var1 is:"<<*paa<<"\n";
cout<<"var1's address is:"<<paa<<"\n";
var1=3;
cout<<"chage var1 is:"<<*paa<<"\n";
cout<<"var1's address is:"<<paa<<"\n";
}

以上程序可以执行,想问:paa不是指向整型常量的指针吗,它指向的值是不能改变的,但是以上程序中的var1中的确实是改变了,如何解释呢?我刚开始学c++,对指针迷惑的很,万望指教。
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
老鱼趣多多 2003-08-26
  • 打赏
  • 举报
回复
它的地址为什么一直没有改变呢?
herogyf 2003-08-22
  • 打赏
  • 举报
回复
哦原来这个样子的,经验值+1了,谢谢
jyfcsdn 2003-08-22
  • 打赏
  • 举报
回复
const int * paa;这样的定义保证的是
编译器保证你的客户代码不能通过paa指针来改变它指向的内容
就是不能这样写

*paa = 3; //编译通不过。


varl1 = 3; 这样当然可以改变varl1的值了,应为varl被定义为int 而不是const int;

69,371

社区成员

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

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