」有什么區(qū)別?
c語(yǔ)言中->和.的區(qū)別為:性質(zhì)不同、指向不同、訪問(wèn)不同。
一、性質(zhì)不同
1、->是指向結(jié)構(gòu)體成員運(yùn)算符。
2、.是斷點(diǎn)符號(hào),不屬于運(yùn)算符。
二、指向不同
1、->所指向的是結(jié)構(gòu)體或?qū)ο蟮氖椎刂贰?/p>
2、.所指向的是結(jié)構(gòu)體或?qū)ο蟆?/p>
3、一般情況下用“.”,只需要聲明一個(gè)結(jié)構(gòu)體。格式是,結(jié)構(gòu)體類(lèi)型名+結(jié)構(gòu)體名。然后用結(jié)構(gòu)體名加“.”加域名就可以引用域 了。因?yàn)樽詣?dòng)分配了結(jié)構(gòu)體的內(nèi)存。如同 int a;一樣。
而用“->”,則要聲明一個(gè)結(jié)構(gòu)體的指針,還要手動(dòng)開(kāi)辟一個(gè)該結(jié)構(gòu)體的內(nèi)存,然后把返回的指針給聲明的結(jié)構(gòu)體指針,才能用“->”正確引用。
否則內(nèi)存中只分配了指針的內(nèi)存,沒(méi)有分配結(jié)構(gòu)體的內(nèi)存,導(dǎo)致想要的結(jié)構(gòu)體實(shí)際上是不存在。這時(shí)候用“->”引用自然出錯(cuò)了,因?yàn)闆](méi)有結(jié)構(gòu)體,自然沒(méi)有結(jié)構(gòu)體的域了。
三、訪問(wèn)不同
1、->的用處是使用一個(gè)指向以便訪問(wèn)結(jié)構(gòu)體或?qū)ο笃鋬?nèi)成員。
2、.的用處是使用一個(gè)指向以便訪問(wèn)結(jié)構(gòu)體或?qū)ο蟆?/p>