程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 常量指針和指針常量

常量指針和指針常量

編輯:C++入門知識

1.常量指針 定義:具有只能夠讀取內存中數據,卻不能夠修改內存中數據的屬性的指針,稱為指向常量的指針,簡稱常量指針。 聲明:const int * p; 注:可以將一個常量的地址賦值給一個對應類型的常量指針,因為常量指針不能夠通過指針修改內粗數據。只能防止通過指針引用修改內存中的數據,並不保護指針所指向的對象。   2.指針常量 定義:指針常量是指指針所指向的位置不能改變,即指針本身是一個常量,但是指針所指向的內容可以改變。 聲明:int const * p=&a; 注:指針常量必須在聲明的同時對其初始化,不允許先聲明一個指針常量隨後再對其賦值,這和聲明一般的常量是一樣的。   3.示例  

int _tmain(int argc, _TCHAR* argv[])  
{  
    //定義變量  
    int a=1;  
  
    //定義常量  
    const int b=2;  
  
    //定義常量指針  
    const int *ptr1=&a;  
  
    //定義指針常量,必須賦值  
    int* const ptr2=&a;  
  
    //錯誤,不能把常量的地址賦給指針變量  
    int *ptr3=&b;  
  
    //正確,可以把常量的地址賦給常量指針  
    const int* ptr4=&b;  
  
    //錯誤,間接引用常量指針不可以修改內存中的數據  
    *ptr1=3;  
  
    //正確,間接引用指針常量可以修改內存中的數據  
    *ptr2=4;  
  
    //正確,常量指針可以指向其他變量  
    ptr1=&b;  
  
    //錯誤,指針常量不可以指向其他變量  
    ptr2=&b;  
  
    //常量指針常量,即不可以間接引用修改內存數據,也不可以指向別的變量  
    const int * const ptr5=&a;  
  
    //錯誤,不可以間接引用修改內存數據  
    *ptr5=5;  
  
    //錯誤,不可以修改指向的對象  
    ptr5=&b;  
  
    return 0;  
}  

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved