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