天天看點

C++ 引用和指針的差別 常量指針和指針常量的差別

       指針指向一塊記憶體,它的内容是所指記憶體的位址;

       引用是某塊記憶體的别名

    引用的一些規則如下:

    (1)引用被建立的同時必須被初始化(指針則可以在任何時候被初始化)。

    (2)不能有NULL 引用,引用必須與合法的存儲單元關聯(指針則可以是NULL)。

    (3)一旦引用被初始化,就不能改變引用的關系(指針則可以随時改變所指的對象)

*和const誰在前,就先念誰

故const int *p叫做常量指針(也可以寫作int const *p)

因為(*p)變成常量,故不能執行*p=x的操作,但是可以修改p指向的位址

int *const p叫做指針常量

因為(p)變成常量,故p指向的位址不能修改,但是可以執行*p=x的操作

const int *const p叫做指向常量的常量指針

即(p)和(*p)都不能複制

int i,j,a,b,c;
  a=10;
  b=20;
  c=30;
  const int *p=&c; //常量指針
  p=&a;  //可以修改指針指向
  *p=2;(Error)  //但是不可以通過*p修改a中的值

  int *const pp=&c;  //指針常量
  *pp=2;  //可以通過*pp修改c的值
  pp=&a;   (Error)   //但是指針指向的對象不可更改

  const int *const ppp=&c;
  *ppp=5;(Error)
  ppp=&a;(Error)      
下一篇: ansible文檔