1指針:變量的地址
2指針變量的定義:
(1)
int a;
int *p=&a;
(2)
int a;
int p;
p=&a;
注意點同時定義多人指針的正確寫法:
int p.;
3去指針變量所對應(yīng)的存儲空間里的值
int a=9;
int啊=&a;
*p=7;
printf("a=%d\a",a);//輸出a=7;
結(jié)論:通過指針變量間接改變了a里面的值
4 const的運用
(1)線面的寫法效果是一樣的,都是指a里面的值制度不可寫
int const a;
const int a;
(2)int a=9;
const int *p=&a;//int *const p=&a;
p=&b;//這句話是錯的
結(jié)論:說明p里面本身的只讀,不可寫
5 野指針:
定義:一個指針定義出來,沒有賦值
下面的寫法是非法的
int p;
printf("%d\n"p);//分析:因為*p就意味著去取p所對應(yīng)的存儲單元里面的內(nèi)容,由于p里面沒有地址,但是系統(tǒng)有可能會為他附上一個隨機的地址
6 空指針:
定義:一個指針變量里面的值為NULL;NULL在數(shù)值上就等于0,"\0"在數(shù)值早上也=0;
int p=NULL;
printf("%d\n"p);//這種寫法會崩
7 多級指針
(1)二級指針
int *p=&a;
int **q=&p;
二級指針:指針的指針,存儲一級指針變量的地址
多級指針;:存儲n-1級指針變量的地址