C语言中的指针,指针存在的意义
1、指針也是一種變量,占用空間內(nèi)存,用來保存內(nèi)存地址。所以無論指向何種數(shù)據(jù)類型的指針,編譯器都給指針類型分配固定的內(nèi)存空間如果說是32位那就都分配4個(gè)字節(jié),如果是64位那就都分配8個(gè)字節(jié)。
//32位計(jì)算機(jī) typedef struct _Person{char name[30];int age; }Person;char * a; char * b[100]; int * c; double * d; Person * p;//這些指針全部分配4個(gè)字節(jié)(32bit)大小的內(nèi)存。2、*號?操作內(nèi)存
指針在聲明的時(shí)候,* 號表示所聲明的變量是指針。
在使用指針的時(shí)候,* 號表示操作指針?biāo)赶虻膬?nèi)存空降的值。這時(shí)候*號通過p的值找到一塊兒內(nèi)存,然后進(jìn)行操作,或取出內(nèi)存塊兒中的數(shù)據(jù),或改變內(nèi)存塊兒中的數(shù)據(jù)。*p=是給內(nèi)存塊賦值;=*p是取出內(nèi)存塊中的數(shù)據(jù)。
3、指針變量和它指向的內(nèi)存塊是兩個(gè)不同的概念。
(1)p=p+1,只會(huì)改變p的值,不會(huì)改變p沒有加1之前指向的內(nèi)存空間的值。
(2)*p=20,不會(huì)改變p的值,只會(huì)改變p指向的內(nèi)存空間的值。
4、指針是一種數(shù)據(jù)類型,和它指向的內(nèi)存空間的數(shù)據(jù)類型所占用大小一致。
理解就p++動(dòng)作的步長來說,如果 double * p;p++的步長為8,如果int *p,p++的步長為4.
指針存在的意義:通過指針來改變變量(變量的本質(zhì)是某一塊內(nèi)存空間的別名)的值,即改變內(nèi)存空間的值。
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的C语言中的指针,指针存在的意义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 基于 OTA 场景的电控信息安全研究
- 下一篇: OpenAnolis开源社区的萌芽与发展
