首页 > 其他 > 详细

const 修饰的小看点(自己积点小知识)

时间:2014-03-07 17:12:15      阅读:366      评论:0      收藏:0      [点我收藏+]

const int x = 50; 
    int* y = (int *)(&x);// same address, but the content is different 
    *y = 200; 
    cout << "x: "<<x<<" address: "<<&x<<endl; 
    cout << "*y: "<<*y<<" address:  "<<y<<endl; 
    cout<<endl;

为什么相同的地址 内容却不相同

const int x = 50;

这是因为 x在声明时加上了const, 所以 ,

这时,x定义为50 成了定值,也可以说是只读常量,就是x的值不能被修改,

int *y = (int *)(&x);

这句程序,因为取的是x的地址,将y的指向同样指向了x的地址;(但这点x的值并没有付给y,是y指向了x的地址)

*y=200;

这点将*y的值 改成了200,但是y还是指向x的地址,这就相当于将两只手同时指向一个人,但是,一个是左手,一个是右手。

所以,输出时,x与*y的值不同,但是因为他们的指向地址相同,所以地址输出后相同

 

这是我自己的看法!希望大家说下自己的看法

const 修饰的小看点(自己积点小知识),布布扣,bubuko.com

const 修饰的小看点(自己积点小知识)

原文:http://www.cnblogs.com/aiyq195/p/3584405.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!