为了认清 sizeof()的返回值,做以下几道题

假设cpu字长为32位
有以下几个定义,求sizeof:
1: char m;
sizeof(m) = ?
2: char m[3];
sizeof(m) = ?
3:
sizeof("123456") = ?
4: char *p = "123456";
sizeof(p) = ?
5: char *p = "1234";
sizeof(p) = ?
6: char *p[5];
sizeof(p) = ?
7: char (*p)[5];
sizeof(p) = ?
8: char p[] = "123";
sizeof(p) = ?

完成了, 看看答案如下:

1: sizeof(m) = 1
2: sizeof(m) = 3
3: sizeof("123456") = 7
4: sizeof(p) = 4
5: sizeof(p) = 4
6: sizeof(p) = 20
7: sizeof(p) = 4
8: sizeof(p) = 4

所以sizeof的定义为变量的定义/初始化所占内存的字节数。