為什么需要類(lèi)型?它僅僅表示一個(gè)地址,無(wú)論什么類(lèi)型的變量,不都是用地址來(lái)表示的嗎?
首先要明白,兩個(gè)重要的概念:
1.一個(gè)地址能存儲(chǔ)一個(gè)字節(jié),這個(gè)概念極其重要;
2.一個(gè)指針永遠(yuǎn)只能指向一個(gè)地址(也就是一個(gè)字節(jié)),當(dāng)指向int時(shí),int有四個(gè)字節(jié),那么只能指向它的首地址。
不同角度的理解:
1. 指針也是一個(gè)變量,因此也叫指針變量,那么是變量就需要有類(lèi)型。它存儲(chǔ)在內(nèi)存中,當(dāng)訪(fǎng)問(wèn)指針指向的內(nèi)容時(shí),先去這個(gè)指針變量地址處拿到地址,再去這個(gè)地址去操作。
2. 一個(gè)指針永遠(yuǎn)只能指向一個(gè)地址(也就是一個(gè)字節(jié)),當(dāng)指向int時(shí),int有四個(gè)字節(jié),那么只能指向它的首地址。解引用時(shí)編譯器會(huì)根據(jù)指針變量的類(lèi)型來(lái)進(jìn)行,因此int型指針解應(yīng)用后是整個(gè)int變量的值,而不僅僅是那個(gè)指針指向的那一個(gè)字節(jié)處的值,這也是指針變量需要類(lèi)型的原因之一。
3. 當(dāng)涉及到*(p+1)這種操作時(shí)編譯器也會(huì)根據(jù)p的類(lèi)型,自動(dòng)調(diào)整所需增加的地址。如果時(shí)int型的p,那么這里加一,實(shí)際地址加4。
如果是char型的p,那么這里加一,地址就是加一。
更多關(guān)于物聯(lián)網(wǎng)培訓(xùn)的問(wèn)題,歡迎咨詢(xún)千鋒教育在線(xiàn)名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國(guó)內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢(mèng)想。