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

C++const與指針,const指針

編輯:C++入門知識

C++const與指針,const指針


1.指向常量的指針變量

  指向常量的指針變量的定義方法:

  const 類型標識符 *指針變量名;

  如:

   const int *p; 

  這種方法定義的指針變量只可讀取它所指向的變量或常量的值,不可借助該指針變量對其所指向的對象的值進行修改(即重新賦值)。但是,可允許這種指針變量指向另外一個同類型的其他變量。

 

本人自學,教材可能有點老,有問題的話求大家指正!!!謝謝!!!

 

2.指針常量

  指針常量的定義格式:

  類型標識符 *const 指針變量名=初始指針值;

  如:

   char * const p="abcde"; 

  該方法定義的指針變量,其值(是一個指針值)不可進行修改(即不允許該指針變量再指向另外一個別的變量),但可以借助該指針變量對其所指向的對象的值進行讀取或修改。特別注意,這種指針在定義時必須初始化。

 

3.指向常量的指針常量

  指向常量的指針常量的第一方法為:

  const 類型標識符 * const 指針變量名 = 初始指針值;

  如:

   int b;

   const int* const p=&b; 

  使用這種方法定義的變量,既不允許修改指針變量的值也不允許借助該指針變量對其所指向的對象的值進行修改。特別注意,該變量在定義的時候同樣必須初始化。

 

 

例題:

  • 指向常量的指針變量
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     const int i=20;
 7     int k =40;
 8     const int *p; 
 9     p=&i;   
10     cout << *p << ' ' << i << endl;
11     p=&k;   
12     cout << *p << ' ' << k << endl;
13     k=200;  
14     cout << k << endl;
15     return 0;
16 }

 

  • 指針常量
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     char s[]="hello world!";
 7     char * const p=s;
 8     //p="xyz";  //該句錯誤,不可再使指針變量指向另外一個地址(指針)
 9     cout << *p << endl;
10     *p='w'; 
11     cout << *p << endl;
12     *p='q'; 
13     cout << *p << endl;
14     return 0;
15 }

 

  • 指向常量的指針常量
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int a=10;
 7     int c=30;
 8     const int b=20;
 9     const int * const p=&a;
10     cout << *p << endl;
11     const int * const q=&b;
12     cout << *q << endl;
13     //p=&c; //錯誤
14     //*p=50;    //錯誤  
15     return 0;
16 }
17 
18 //菜鳥,求大家批評指教,代碼編寫習慣和規范等等!!!謝謝!!!

 

本人自學,教材可能有點老,有問題的話求大家指正!!!謝謝!!!

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