我正在阅读 Kenneth Reek 的“Pointers on C”,并看到了这一行:
结构变量是标量,因此您可以使用它执行与其他标量相同类型的操作。
那么它是什么意思呢?
我在 SO 上发现了一个类似的问题,但它与其他语言有关(我猜是 SQL)
谢谢你。
C11 标准的第 6.2.5 节解释了:
算术类型和指针类型统称为标量类型。数组和结构类型统称为聚合类型。
继续贯穿整个标准,您会发现哪些操作和赋值可用于标量和聚合类型。
你的声明:
结构变量是标量,因此您可以使用它执行与其他标量相同类型的操作。
与 C 标准直接矛盾,因为结构是聚合类型而不是标量。也就是说,在有限的情况下,结构确实具有与标量相同的属性。例如,您可以分配两个相同类型的结构,并且复制构造函数在两个结构之间提供浅拷贝(分配)。还有其他情况,但请注意它们是例外而不是规则。
我怀疑该声明是针对struct可以将 a 视为该特定操作的标量的情况之一做出的。在不知道正在讨论什么操作的情况下,我不能进一步说。