結(jié)構(gòu)指針是指向結(jié)構(gòu)的指針
發(fā)布時(shí)間:2014/6/7 20:24:23 訪問(wèn)次數(shù):866
結(jié)構(gòu)指針是指向結(jié)構(gòu)的指針。它由一 INA105KP個(gè)加在結(jié)構(gòu)變量名前的“木”操作符來(lái)定義,例如用前面已說(shuō)明的結(jié)構(gòu)定義一個(gè)結(jié)構(gòu)指針如下:
也可以省略結(jié)構(gòu)指針名只作結(jié)構(gòu)說(shuō)明,然后再用下面的語(yǔ)句定義結(jié)構(gòu)指針:
struct string*student;
使用結(jié)構(gòu)指針對(duì)結(jié)構(gòu)成員的訪問(wèn),與結(jié)構(gòu)變量對(duì)結(jié)構(gòu)成員的訪問(wèn)在表達(dá)式上有所不同。結(jié)構(gòu)指針對(duì)結(jié)構(gòu)成員的訪問(wèn)形式如下:
結(jié)構(gòu)指針名一>結(jié)構(gòu)成員
例如要給上面定義的結(jié)構(gòu)中name和age賦值,可以用下面語(yǔ)句:
實(shí)際上,student->name就是(*student).name的縮寫形式。
需要指出的是結(jié)構(gòu)指針是指向結(jié)構(gòu)的一個(gè)指針,即結(jié)構(gòu)中第一個(gè)成員的首地址,因此在使用之前應(yīng)該對(duì)結(jié)構(gòu)指針初始化,即分配整個(gè)結(jié)構(gòu)長(zhǎng)度的字節(jié)空間,這可用下面的函數(shù)完成,仍以上例來(lái)說(shuō)明,例如:
student=(struct string*)malloc(size of (struct string》;
size of (struct string)臼動(dòng)求取string結(jié)構(gòu)的字節(jié)長(zhǎng)度,malloc()函數(shù)定義了一個(gè)大小為結(jié)構(gòu)長(zhǎng)度的內(nèi)存區(qū)域,然后將其首地址作為結(jié)構(gòu)指針?lè)祷。注意以下兩點(diǎn):
(1)結(jié)構(gòu)作為一種數(shù)據(jù)類型,定義的結(jié)構(gòu)變量或結(jié)構(gòu)指針變量同樣有局部變量和全局變量之分,視定義的位置而定。
(2)結(jié)構(gòu)變量名不是指向該結(jié)構(gòu)的地址,這與數(shù)組名含義不同,因此結(jié)構(gòu)中第一個(gè)成員的首地址是&【結(jié)構(gòu)變量名]。
結(jié)構(gòu)指針是指向結(jié)構(gòu)的指針。它由一 INA105KP個(gè)加在結(jié)構(gòu)變量名前的“木”操作符來(lái)定義,例如用前面已說(shuō)明的結(jié)構(gòu)定義一個(gè)結(jié)構(gòu)指針如下:
也可以省略結(jié)構(gòu)指針名只作結(jié)構(gòu)說(shuō)明,然后再用下面的語(yǔ)句定義結(jié)構(gòu)指針:
struct string*student;
使用結(jié)構(gòu)指針對(duì)結(jié)構(gòu)成員的訪問(wèn),與結(jié)構(gòu)變量對(duì)結(jié)構(gòu)成員的訪問(wèn)在表達(dá)式上有所不同。結(jié)構(gòu)指針對(duì)結(jié)構(gòu)成員的訪問(wèn)形式如下:
結(jié)構(gòu)指針名一>結(jié)構(gòu)成員
例如要給上面定義的結(jié)構(gòu)中name和age賦值,可以用下面語(yǔ)句:
實(shí)際上,student->name就是(*student).name的縮寫形式。
需要指出的是結(jié)構(gòu)指針是指向結(jié)構(gòu)的一個(gè)指針,即結(jié)構(gòu)中第一個(gè)成員的首地址,因此在使用之前應(yīng)該對(duì)結(jié)構(gòu)指針初始化,即分配整個(gè)結(jié)構(gòu)長(zhǎng)度的字節(jié)空間,這可用下面的函數(shù)完成,仍以上例來(lái)說(shuō)明,例如:
student=(struct string*)malloc(size of (struct string》;
size of (struct string)臼動(dòng)求取string結(jié)構(gòu)的字節(jié)長(zhǎng)度,malloc()函數(shù)定義了一個(gè)大小為結(jié)構(gòu)長(zhǎng)度的內(nèi)存區(qū)域,然后將其首地址作為結(jié)構(gòu)指針?lè)祷。注意以下兩點(diǎn):
(1)結(jié)構(gòu)作為一種數(shù)據(jù)類型,定義的結(jié)構(gòu)變量或結(jié)構(gòu)指針變量同樣有局部變量和全局變量之分,視定義的位置而定。
(2)結(jié)構(gòu)變量名不是指向該結(jié)構(gòu)的地址,這與數(shù)組名含義不同,因此結(jié)構(gòu)中第一個(gè)成員的首地址是&【結(jié)構(gòu)變量名]。
上一篇:共用體類型的單元形式
熱門點(diǎn)擊
- E2PROM
- 皂化作用
- PCB定位孔和夾持邊的設(shè)置
- 子程序調(diào)用與返回指令
- Sn系焊料與Ni/Au(ENIG)焊盤焊接的
- 典型表面組裝方式
- 片外 RAM
- 三維堆疊POP (Package On Pa
- PQFN焊盤設(shè)計(jì)結(jié)構(gòu)
- MCS-51指令的取指/執(zhí)行時(shí)序
推薦技術(shù)資料
- 頻譜儀的解調(diào)功能
- 現(xiàn)代頻譜儀在跟蹤源模式下也可以使用Maker和△Mak... [詳細(xì)]
- 可編程模擬信號(hào)橋
- TrustZone、段碼 LCD 控制器產(chǎn)品
- 高性能降壓控制器
- CMOS 集成開(kāi)關(guān)運(yùn)算放大器
- I2C串行接口指尖觸摸屏控制器
- 高精度(60 µV)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究