我在阅读肯尼斯·雷克的《C上的指针》时看到了这句话:结构变量是一个标量,因此您可以使用它执行与其他标量相同的操作。这是什么意思我在SO上发现了一个类似的问题,但它与其他一些语言有关(我猜是SQL)谢谢你。
jdzmm42g1#
C11标准的第6.2.5节解释了:算术类型和指针类型统称为标量类型。数组和结构类型统称为聚合类型。继续阅读整个标准,您将了解标量和聚合类型可以使用哪些操作和赋值。您的陈述:结构变量是一个标量,因此您可以使用它执行与其他标量相同的操作。与C标准直接矛盾,因为结构是聚合类型而不是标量。也就是说,在有限的情况下,结构确实具有与标量相同的性质。例如,您可以分配两个相同类型的结构,而复制构造函数在两个结构之间提供浅复制(分配)。还有其他情况,但请注意,它们是例外,而不是规则。我怀疑这句话是针对那些struct可以被视为该特定操作的标量的情况之一做出的。在不知道正在讨论的是什么行动的情况下,我不能进一步说。
struct
hsgswve42#
在这种情况下,标量变量是一次只保存一个值的变量。
2条答案
按热度按时间jdzmm42g1#
C11标准的第6.2.5节解释了:
算术类型和指针类型统称为标量类型。数组和结构类型统称为聚合类型。
继续阅读整个标准,您将了解标量和聚合类型可以使用哪些操作和赋值。
您的陈述:
结构变量是一个标量,因此您可以使用它执行与其他标量相同的操作。
与C标准直接矛盾,因为结构是聚合类型而不是标量。也就是说,在有限的情况下,结构确实具有与标量相同的性质。例如,您可以分配两个相同类型的结构,而复制构造函数在两个结构之间提供浅复制(分配)。还有其他情况,但请注意,它们是例外,而不是规则。
我怀疑这句话是针对那些
struct
可以被视为该特定操作的标量的情况之一做出的。在不知道正在讨论的是什么行动的情况下,我不能进一步说。hsgswve42#
在这种情况下,标量变量是一次只保存一个值的变量。