空指針
即指針變量指向內存中標號爲0的空間,一般用來初始化指針變量。
int* p = NULL;
需要注意的是:
空指針指向的內存是不可訪問的。即在使用時候首先要對其賦值。纔可以使用。
int* p = NULL;
int k[] = { 1,2,3 };
int n = 1;
p = &n; //對其重新賦值,讓它指向n的地址。
//p = k; 因爲數組的名稱本身就是首地址。所以不用寫取址符
cout << *p << endl;
否則會報錯誤。原因是因爲空指針指向的是編號爲0的空間。而編號內存0-255爲系統佔用內存,是不允許用戶訪問的。
野指針
即指向非法內存空間的指針。對其操作會報錯。在寫程序的過程中一定要格外注意。
//野指針 指針指向非法的內存空間
int* a = (int* )0x1100;
//cout << *a << endl; 報錯
原因是因爲這個地址是隨便寫的,並不是我們申請的。所以會報錯。