【C語言】指針是一個變量

1)指針是一個變量,是用來存放地址的變量,佔有內存空間,用來保存內存地址;spa

2)在指針聲明時,*號表示所聲明的變量爲指針指針

    在指針使用時,*號表示操做 「指針所指向的內存空間中的值」;code

    *p至關於經過地址找到一塊內存,而後操做內存;blog

    *p放在等號左邊賦值(給內存賦值);內存

    *p放在等號右邊取值(從內存獲取值);class

 

3)指針變量和它所指向的內存塊是兩個不一樣的概念變量

含義1:給p賦值p=0x1111;只會改變指針變量值,不會改變所指向的內容;數據類型

含義2:給*p賦值*p='a';不會改變指針變量的值,只會改變所指向的內存塊的值;數據

含義3:等號左邊*p表示給內存賦值;等號右邊*p表示取值;語言

 

4)指針是一種數據類型,是指它的內存空間的數據類型

含義1:指針步長(p++),根據所指向內存空間的數據類型肯定

C語言規定:要釋放內存必須從內存首地址開始釋放

指針變量和它所指向的內存空間是兩個不一樣的概念

1 char *p = NULL;
2 p = (char *)malloc(100);
3  
4 if (!p == NULL)
5 {
6     free(p);
7     p = NULL;
8 }

free(p)是釋放p所指向的內存空間的內容,而指針變量p中的值仍是存在的,須要把p指向NULL,防止產生野指針

相關文章
相關標籤/搜索