關(guān)于指針占多少個(gè)字節(jié)
說(shuō)道這個(gè)問(wèn)題,學(xué)過(guò)C語(yǔ)言的都知道,我們?cè)诙x一個(gè)指針的時(shí)候需要說(shuō)明指針的類(lèi)型,那么按道理來(lái)說(shuō),不同類(lèi)型的指針大小應(yīng)該不同啊,整形占四個(gè)字節(jié),浮點(diǎn)占八個(gè)字節(jié),其實(shí)不是這樣,指針指向的是我們定義的類(lèi)型的第一個(gè)字節(jié)的地址,而不指向其他的地址,那么用一個(gè)指針為什么能把一個(gè)變量輸出呢,因?yàn)樵诙x的時(shí)候我們指定了這個(gè)指針的類(lèi)型,我們的編譯系統(tǒng)就會(huì)根據(jù)我們的定義自動(dòng)向下查找,四個(gè),八個(gè),十六個(gè),也就是說(shuō),如果你用一個(gè)八位的指針來(lái)找一個(gè)四位的數(shù)(一般編譯通不過(guò),這樣的編譯器肯定是未完成版),也能找到,可是多找出來(lái)的四個(gè)就會(huì)使你找到的數(shù)據(jù)成為垃圾數(shù)據(jù)
本文引用地址:http://m.butianyuan.cn/article/201612/324219.htm下一個(gè)問(wèn)題,為什么三十二位系統(tǒng)中指針變量占四個(gè)字節(jié)呢,因?yàn)槲覀兊腃PU一般內(nèi)部只有三十二條地址總線(xiàn),能尋址的范圍就是三十二位,也就是四個(gè)字節(jié),2的32次方,數(shù)學(xué)好的可是算算是多少,這也是為什么軟件分為三十二位和六十四位的由來(lái),六十四位的他的一個(gè)指針變量是八個(gè)字節(jié),放到三十二位系統(tǒng)中就會(huì)出現(xiàn)問(wèn)題,你可能又會(huì)問(wèn),問(wèn)什么有的三十二位系統(tǒng)里面可以擴(kuò)展8G的內(nèi)存,2的三十二次方不是4G么,這個(gè)問(wèn)題,靠主板來(lái)解決,學(xué)過(guò)數(shù)電的都知道數(shù)據(jù)選擇器,你理論上能用的內(nèi)存就4G,但是靠數(shù)據(jù)選擇器,可以選擇不同的內(nèi)存條,不同的4G,那樣,實(shí)際上不就可以進(jìn)行內(nèi)存條的擴(kuò)展了?操作系統(tǒng)不完成內(nèi)存條的選擇工作,選擇工作由主板驅(qū)動(dòng)完成,那樣,是不是你主板上的所有內(nèi)存條都能用上了么,所以,買(mǎi)主板,要驅(qū)動(dòng)光盤(pán)很重要,特別是你特有錢(qián),買(mǎi)幾根內(nèi)存條的時(shí)候
評(píng)論