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