如下例程:
#include "stdio.h"
#include "string.h"
using namespace std;
#define uint8_t unsigned char
#define uint16_t unsigned short int
#define uint32_t unsigned int
typedef structsb_typedef;
sb_typedef sb[2] = , };
#define data_type uint8_t
void main()
定義結構體型別sb_typedef,其長度sizeof(sb_typedef)是8,定義兩個sb_typedef型別的結構體sb[0]、sb[1],這兩個結構體實體地址相差是8,但(&sb[1] - &sb[0])是多少呢?當然是1了,若把這兩個結構體的指標型別轉為其他型別,則又是其他差值了。 兩個指標相減
原文 如果兩個指標指向同乙個陣列,它們就可以相減,其結果為兩個指標之間的元素數目。假設我住在廣場路124號,mag住在廣場路142號,每家之間的位址間距是2 在我這一側用連續的偶數作為街道位址 那麼mag家就在我家往前 142 124 2家,也就是說可以得到我們兩家之間相隔8家。也就是說可以利用兩個...
關於陣列兩個元素位址相減的問題
昨天筆試也有這麼道題目,int arraytmp 10 int ntmp arraytmp 4 arraytmp 0 問ntmp 當時想也沒想寫了ntmp 16 回家在機器上調試執行了一下,結果ntmp 4。因為不常用這種方法,所以覺得很納悶兒。看了下反彙編的 發現 int ntmp arraytm...
關於陣列兩個元素位址相減的問題
includeint a 5 main 執行結果 檢視反彙編的 發現 int ntmp a 4 a 0 00416b87 lea eax,ebp 28h 00416b8a lea ecx,arraytmp 00416b8d sub eax,ecx 00416b8f sar eax,2 00416b9...