当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

my C++ 陷阱与缺陷

『关键字』指针常量 常量指针 指针引用 C++陷阱与缺陷

最近在看C++ Primer
感觉到这书的厚重
读到第三章
发现了C语言陷阱与缺陷中曾经提到过的一个C++语义上特别容易混淆的
和晦涩的地方-指针常量与常量指针

写了一段代码来总结经验
代码的用途是声明和定义

一个指向const常量的指针引用和一个指向变量的指针引用

 const int ival = 1024;//常量
 
 //方法一
 const int * pi = &ival;//pi是指向常量的指针,也就是常量指针
 const int * & pi2 = pi;//pi2是指向常量的指针的引用,也就是常量指针引用
 
 //方法二
 //这是比较晦涩的地方
 //第一个const说明引用指针指向的对象是常量,这从ival的定义上得出
 //第二个const说明pi3是个const引用
 //第二个const的使用是因为&ival是文字常量,它是个值,不可寻址,
 //编译器实际上是先生成一个临时变量temp=&ival,再由pi3指向temp
 //但是这种规则只有在const引用中才会出现。所以pi3也必须是个const值
 
  const int * const & pi3 = &ival;
 
 //非const变量的指针引用
 int ival2 = 2048;
 int * const & pi4 = &ival2;
 

代码如下

//////////////////////////////////////////////////////////////

#include <iostream>

using namespace std;

int main(void)
{
 const int ival = 1024;
 const int * pi = &ival;
 const int *& pi2 = pi;
 
 const int ival2 = 2048;
 const int* const & pi3 = &ival2;
   
 int ival3 = 4096;
 int * const & pi4 = &ival3;
    
 return 1;
 

}

相关内容
赞助商链接