gpt4 book ai didi

c - 为什么将 sizeof 视为运算符?

转载 作者:太空狗 更新时间:2023-10-29 16:15:27 24 4
gpt4 key购买 nike

为什么 sizeof 被认为是运算符而不是函数?

成为运营商需要具备哪些属性?

最佳答案

因为 C 标准是这么说的,而且它获得了唯一的投票权。

作为后果:

  • sizeof 的操作数可以是带括号的类型 sizeof (int),而不是对象表达式。
  • 括号是不必要的:int a; printf("%d\n", sizeof a); 非常好。它们经常出现,首先是因为它们需要作为类型转换表达式的一部分,其次是因为 sizeof 具有非常高的优先级,所以 sizeof a + b 不同sizeof (a+b)。但它们不是 sizeof 调用的一部分,它们是操作数的一部分。
  • 不能取sizeof的地址。
  • 作为 sizeof 操作数的表达式不会在运行时求值(sizeof a++ 不会修改 a)。
  • 作为 sizeof 操作数的表达式可以是除 void 或函数类型之外的任何类型。事实上,这就是 sizeof 的意义所在。

一个函数在所有这些点上都会有所不同。函数和一元运算符之间可能还有其他差异,但我认为这足以说明为什么 sizeof 不能成为函数,即使有理由希望它成为函数。

关于c - 为什么将 sizeof 视为运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1393582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com