我总是假设C表达式sizeof (int)
就像一个函数一样工作,括号内的任何内容都像参数一样被传递。由于int
(或任何其他类型说明符)实际上是一个关键字而不是可以传递的对象,我认为它只是某种特殊情况硬编码到编译器中。
但我最近发现,如果我在变量上使用sizeof
,我可以省略括号(sizeof var
)并且它将编译并运行正常。由于sizeof
实际上是一个运算符本身而不是一个函数(并且运算符不需要括号),并且类型说明符是唯一需要括号的东西,现在我想知道它们是否真的是类型说明符或者是否它们实际上是sizeof
以某种方式使用的类型转换运算符来查找相应类型的大小。
答案 0 :(得分:3)
()
与sizeof
运算符一起使用。
sizeof
运算符产生其操作数的大小(以字节为单位),可以是 表达式或类型的括号名称。大小由操作数的类型决定。