指標加上乙個常數的計算結果

2021-07-27 07:24:51 字數 853 閱讀 6219

寫出下面程式的輸入結果:

#include struct bbb

*p;int main()

執行結果:

p+0x200=0x01003000

(ulong)p+0x200=0x01000200

(char*)p+0x200=0x01000200

(short*)p+0x200=0x01000400

(int*)p+0x200=0x01000800

解答:假設在32位cpu上,

sizeof(long) = 4 bytes

sizeof(char *) = 4 bytes

sizeof(short int) = sizeof(short) = 2 bytes

sizeof(char) = 1 bytes

由於是4位元組對齊,

sizeof(struct bbb) = sizeof(*p)

= 4 + 4 + 2 + 1 + 1/*補齊*/ + 2*5 + 2/*補齊*/ = 24 bytes  (經dev-c++驗證)

p=0x1000000;

p+0x200=____;

=0x1000000 + 0x200*24

(char*)p+0x200 = 0x1000000 + 0x200 * 1 = 0x01000200

(short*)p+0x200 = 0x1000000 + 0x200 * 2  = 0x01000400

(int*)p+0x200 = 0x1000000 + 0x200 * 4 = 0x01000800

結論:某一型別的指標 +  乙個常數 =  這個常數 * 指標所指區域的大小。

如何在網頁上加上乙個讚賞碼?

首先寫好網頁 然後將下面 複製貼上到body標籤內即可。2.管理引數說明。引數詳解 引數說明 top型別 string 預設值 10 含義 外掛程式頂端距離頁面最上面的距離 備註 格式如 100px或者10 button 型別 object,包含id和type兩個子陣列 id 型別 number 預...

如何給軟體加上乙個數字簽名

這個問題也困擾了我很久。終於,在我不懈的努力之下,這個數字簽名被我搞定了,現在來把我的經驗分享給大家。成功後如下圖 ok,現在開始正片乾貨!1.準備工具。需要準備的工具有 1.makecert.exe 2.signcode.exe 2.開始製作。第一步 win r鍵 cmd 開啟命令提示符,先是輸入...

兩個文字框異動任何乙個能即時更新計算結果

在gridview控制項中,有兩個文字框,使用者更改某乙個文字框的值,能即時計算結果。insus.net列舉乙個小例子,來演示些功能。先建立乙個物件 類 在網頁中,建立乙個集合,假設說,一張採購單有多個物品元件,這樣說,採購單就是乙個集合,不過些例,只是採購乙個物品。把上面的集合,繫結給gridvi...