你问的这个问题,相当于问,当一个结构体作为 sizeof 的操作数 的时候,是什么结果。
其实说真的,这种问题很纠结,我也不知道怎么回答。
但是,有两个思路可以推荐给你的。
1.实际把这个sizeof结果打印出来,或者debug查看变量,你就知道了。看着这个数值和这个结构体的结构你应该很快能猜出来;
2.类比 sizeof(指针) sizeof(数组),你也应该可以理解。
我稍微多说一点,sizeof不是一个函数,而是一个运算符,对,就是和 + - 那样的运算符。
另外,sizeof 计算的是 该 变量或者数据类型 占据的空间大小,单位byte
这个,倒不是出自什么权威文件,只是实际经验总结。
比如 sizeof(char) 一般等于1
char s[8];
sizeof(s) = 8;
char *p;
sizeof(p) 一般等于 4,因为它是指针
即使 p = s;
sizeof(p) 仍然是 4
同样的,我们可以这样 sizeof(char)还是1,sizeof(char *)还是4.
这说明,sizeof不仅可以对 变量,也可以对 数据类型本身。
所以回到你问的,用在结构体上的问题就是
不管是你的 结构体变量名sizeof,还是这个结构体类型名 sizeof 也是一样的。