设为首页 加入收藏

TOP

C++constconst_cast行为分析
2014-11-10 22:00:08 】 浏览:7605
Tags:constconst_cast 行为分析

  事情的起因呢,我就不说了,总之今天花了两个小时研究了一下C++中的const const_cast行为,发现与原先预想的很不一样...


  先看一段代码:


  const


  #include


  int main()


  {


  const int a=2;


  const int * b=&a;


  printf("%d, %d, %d, %d\n", a, *b, &a, b);


  int * c=const_cast (b);


  printf("%d, %d\n", *c, c);


  *c=4;


  printf("%d, %d, %d, %d, %d, %d\n", a, &a, *b, b, *c, c);


  const int e=a;


  printf("%d, %d, %d, %d\n", e, &e, &a, *(&a));


  int d=(int)&a;


  printf("%d, %d, %d, %d, %d\n", a, &a, d, &d, *(int *)d);


  const int * f=&a;


  printf("%d, %d\n", *f, f);


  }


  过客们知道其中玄机的可以忽略本文,不知道的可以先想一想预想的结果...再运行一下...看一下实际的结果...


  大体的意思呢,就是我申明了一个int类型的const变量...


  然后呢用const_cast 将const属性去掉了,再去输出其值...看一下结果...预想的结果,凡是输出a的地方,应该都变成了4...


  实际上...结果是这个样子的...


  2, 2, 2423784, 2423784


  2, 2423784


  2, 2423784, 4, 2423784, 4, 2423784


  2, 2423748, 2423784, 2


  2, 2423784, 2423784, 2423736, 4


  4, 2423784


  请按任意键继续. . .


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇memcpy多字节字节赋值问题 下一篇实战智能指针(SmartPointer)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目