常量指標和非常量指標的區別
阿新 • • 發佈:2019-01-29
當一個指標指向常量,即
#include<iostream>
using namespace std;
int main()
{ const int j=3;
//int *a=&j;這樣的int指標是不可以的,因為j為常量int
const int *a=&j;
cout<<*a;
}
這時的j是不可以改變的,如j=4或者*a=4;是不可取的
若想改變*a,則必須如下
#include<iostream> using namespace std; int main() { int j=3; //int *a=&j;這樣的int指標是不可以的,因為j為常量int int *a=&j; *a=4; cout<<*a; }
這裡,不能用const int*a,也不能用const int j了;
但是,const int*a可以指向int j
#include<iostream>
using namespace std;
int main()
{ int j=3;
//int *a=&j;這樣的int指標是不可以的,因為j為常量int
const int *a=&j;
// *a=4;
cout<<*a;
}
這時,*a不可以改變,但j可以改變,j變了,*a也就變了
對於int *const a(從左往右讀,什麼指標,常指標;指向什麼物件,普通的int)
int*代表的是一個指標,而const 了a,則a指標為常量指標。
即,a指向的地址不能改變了
但地址的值可以改變,同時,指向的物件不能是const int了