1. 程式人生 > >C語言指針2(空指針,野指針)

C語言指針2(空指針,野指針)

技術分享 個數字 隨機 amp spa 程序崩潰 color p值 打印

//最近,有朋友開玩笑問 int *p *是指針還是p是指針還是*p是指針,當然了,知道的都知道p是指針

//野指針----->>>指沒有指向一個地址的指針(指針指向地址請參考上一篇文章)

技術分享

//空指針---->>指向空(null)的指針就是空指針

技術分享

//指針的其他用法,指針可以指向指針,指針可以進行+ - * /運算

技術分享

/*

特別註意,各個編譯器都不相同,這裏有一種錯誤寫法,如:

int *p,int a=10,b=20;

p=&b;

*p = &a; //錯誤原因:*p表示指針p指向的值,而&a表示a的地址,值不能等於一個地址,正確寫法位:*p=a;讓指針p指向地址的值等於a的值,也就是現在b=a=10

當然,每個編譯器都不相同,個別編譯器可以通過編譯,打印出的*p值為一個奇怪的數字,這個數字並非亂碼,而是一個隨機數,而這個隨機數的地址就是一個為開發的內存值,而此時的指針p就是一個野指針

*/

//野指針的危害相當大,因為野指針不知道為指向哪塊內存,如果程序員不小心用了野指針,那麽就可能得到了不想得到的數據,很有可能造成程序崩潰、閃退等危 //害,經過我多次敲出野指針,發現了一個野指針危害的規律,即是當內存越低,野指針危害即越大

C語言指針2(空指針,野指針)