修改const变量的疑问

修改const变量的疑问
2个指针指向的地址和变量地址一样,值为什么不一样呢?疑惑。
  1. #include "stdafx.h"
  2.  
  3.  
  4. int _tmain ( int argc, _TCHAR * argv [ ] )
  5. {
  6.      const  int a = 10 ;
  7.      const  int  *p1 = &a ;
  8.      int  *p2 = const_cast < int  * > (p1 ) ;
  9.      if  ( &a ==p1 )
  10.      {
  11.          printf ( "&a==p1\n" ) ;
  12.      }
  13.      else
  14.      {
  15.          printf ( "&a!=p1\n" ) ;
  16.      }
  17.      if  (p2 ==p1 )
  18.      {
  19.          printf ( "p2==p1\n" ) ;
  20.      }
  21.      else
  22.      {
  23.          printf ( "p2==p1\n" ) ;
  24.      }
  25.      printf ( "%#p:%d %#p:%d %#p:%d\n",&a,a,p1,*p1,p2,*p2);
  26.      *p2 = 20 ;
  27.      if  ( &a ==p1 )
  28.      {
  29.          printf ( "&a==p1\n" ) ;
  30.      }
  31.      else
  32.      {
  33.          printf ( "&a!=p1\n" ) ;
  34.      }
  35.      if  (p2 ==p1 )
  36.      {
  37.          printf ( "p2==p1\n" ) ;
  38.      }
  39.      else
  40.      {
  41.          printf ( "p2==p1\n" ) ;
  42.      }
  43.      printf ( "
    %#p:%d %#p:%d %#p:%d
    \n"
    , &a,a,p1, *p1,p2, *p2 ) ;
  44.      return  0 ;
  45. }
  46.  

Logo
作者:Gezidan
出处:http://www.rixu.net    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

你可能感兴趣的:(修改const变量的疑问)