常量指針
常量指針:指針指向的值不能修改,但是指針的指向可以修改
常量指針定義方式爲:const int *p=&a;
#include<iostream> using namespace std; int main() { int a=100; int b=200; //常量指針,指針的指向可以更改,但是指針指向的值不能改 const int *p=&a; //*p=10;編譯時會報錯 p=&b; cout<<*p<<endl; return 0; }
運行結果:200
記憶方式:const 在 *p(*p代表的是一個數) 之前,所以這個數不能通過這指針修改,俗稱常量指針
指針常量
指針常量:指針的指向不能修改,但是指針指向的值可以修改
定義方式:int * const p=&a;
#include<iostream> using namespace std; int main() { int a=100; int b=200; //指針常量,指針的指向不可以改,指針指向的的值可以改 int * const p=&a; //p=&b; 編譯時會報錯 *p=10; cout<<*p<<endl; return 0; }
運行結果:10
記憶方式:const在 p (p代表的是一個地址) 之前,所以這個地址不能修改,所稱指針常量
常量指針常量
常量指針常量:指針的指向和指針的指向的值都不能修改
定義方式: const int * const p=&a;
#include<iostream> using namespace std; int main() { int a=100; int b=200; //常量指針常量,指針的指向不可以改,指針指向的的值也不可以改 const int * const p=&a; //p=&b; 編譯時會報錯 //*p=10; 編譯時會報錯 cout<<*p<<endl; return 0; }
運行結果:100
記憶方式:在 * 和 p 之前都有const 修飾,所以二者都不可以改