intptr_t問題
筆試時遇到:
系統為32位時,代碼結果:
int a=10;
int *p=&a;
int *k=p+1;
printf("%ld\n",(intptr_t)k-(intptr_t)p);
// 32 位系統還是 64 位系統,int 類型的大小都是 4 字節,因此結果相同。
intptr_t變量是為了增強不同位數系統之間的兼容性而添加的變量。32位為int型4字節,64位為long int型8字節。
參考文章:
http://www.rzrgm.cn/dongxb/p/16441246.html

浙公網安備 33010602011771號