開章明義,在32位系統中指針占四個字節;
說道這個問題,學過C語言的都知道,我們在定義一個指針的時候需要說明指針的類型,那么按道理來說,不同類型的指針大小應該不同啊,整形占四個字節,浮點占八個字節,其實不是這樣,指針指向的是我們定義的類型的第一個字節的地址,而不指向其他的地址,那么用一個指針為什么能把一個變量輸出呢,因為在定義的時候我們指定了這個指針的類型,我們的編譯系統就會根據我們的定義自動向下查找,四個,八個,十六個,也就是說,如果你用一個八位的指針來找一個四位的數(一般編譯通不過,這樣的編譯器肯定是未完成版),也能找到,可是多找出來的四個就會使你找到的數據成為垃圾數據
下一個問題,為什么三十二位系統中指針變量占四個字節呢,因為我們的CPU一般內部只有三十二條地址總線,能尋址的范圍就是三十二位,也就是四個字節,2的32次方,數學好的可是算算是多少,這也是為什么軟件分為三十二位和六十四位的由來,六十四位的他的一個指針變量是八個字節,放到三十二位系統中就會出現問題,你可能又會問,問什么有的三十二位系統里面可以擴展8G的內存,2的三十二次方不是4G么,這個問題,靠主板來解決,學過數電的都知道數據選擇器,你理論上能用的內存就4G,但是靠數據選擇器,可以選擇不同的內存條,不同的4G,那樣,實際上不就可以進行內存條的擴展了?操作系統不完成內存條的選擇工作,選擇工作由主板驅動完成,那樣,是不是你主板上的所有內存條都能用上了么,所以,買主板,要驅動光盤很重要,特別是你特有錢,買幾根內存條的時候