打印
[开发工具]

C语言的sizeof是一个运算符

[复制链接]
171|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
OKAKAKO|  楼主 | 2024-5-24 12:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在初学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 被省略了


使用特权

评论回复
沙发
jf101| | 2024-5-24 14:22 | 只看该作者
sizeof 其实底层就是一个函数吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

162

主题

1179

帖子

3

粉丝