(C/C++) 32bit \ 64bit 記憶體空間

char str[] = "Hello" ;
char *p = str ;
printf("sizeof(str) = %d\n", sizeof(str));
printf("sizeof(p) = %d\n", sizeof(p));
printf("sizeof(short) = %d\n", sizeof(short));
printf("sizeof(int) = %d\n", sizeof(int));
printf("sizeof(long) = %d\n", sizeof(long));
printf("sizeof(long long) = %d\n\n", sizeof(long long));
printf("sizeof(size_t) = %d\n", sizeof(size_t));
printf("sizeof(double) = %d\n", sizeof(double));
printf("sizeof(long double) = %d\n", sizeof(long double));

64 bit :spa

sizeof(str)       = 6
sizeof(p)         = 8
sizeof(short)     = 2
sizeof(int)       = 4
sizeof(long)      = 8
sizeof(long long) = 8
sizeof(size_t)    = 8
sizeof(double)    = 8
sizeof(long double) = 16

32 bit :code

sizeof(str)       = 6
sizeof(p)         = 4
sizeof(short)     = 2
sizeof(int)       = 4
sizeof(long)      = 4      
sizeof(long long) = 8
sizeof(size_t)    = 4
sizeof(double)    = 8
sizeof(long double) = 12