根據測試
int main() { int a = 4; void *p = (void*)malloc(sizeof(100)); char *p1 = (char*)malloc(sizeof(100)); int n1 = sizeof(a); int n2 = sizeof(p); // int n3 = sizeof(*p); error int n4 = sizeof(p1); int n5 = sizeof(*p1); }
x86下
n1 = 4; n2 = 4; n4 = 4; n5 = 1;
x64下
n1 = 4; n2 = 8; n4 = 8; n5 = 1;
小結: 指針在x86下為4個字節長度,在x64下為8個字節長度
int型在x86/x64下都為4個字節長度
char型同上,都為1個字節長度
其他我沒測。