在初学C语言的时候,我们刚刚接触到整型,浮点型数据,总是用 sizeof 来判断数据类型占用的内存空间,比如,我们常常会这样写:
float sum;
int bytes = sizeof(sum);
这样来使用sizeof,就会使我们误以为,sizeof是一个函数。
但是实际上,你像下面这样写,也是没有问题的:
int bytes = sizeof sum; //
从上面可以观察到,sizeof 绝对不是一个函数,因为没有括号一样可以运行,所以他本质上是一个 C语言的关键字或者看做运算也可以,如同 +, - , * , / 一样,而不是sqrt()这种函数。
但是要注意,如果是求整型关键字就必须要加括号,比如:
int bytes = sizeof (float); //
这地方用运算来看待 sizeof 也是可以理解的,因为 float 是一个关键字,他前面只能加 unsinged,或者 const 这些关键字。
这里你可以假想是我们将 0 进行强制类型转换为 float,然后去计算这个变量占用空间的大小,如:
int bytes = sizeof (float) 0; // 这里可以假想是 0 被省略了
|