什么是 C 中的标量变量?

Kar*_*ngh 4 c variables

我正在阅读 Kenneth Reek 的“Pointers on C”,并看到了这一行:

结构变量是标量,因此您可以使用它执行与其他标量相同类型的操作。

那么它是什么意思呢?

我在 SO 上发现了一个类似的问题,但它与其他语言有关(我猜是 SQL)

谢谢你。

Dav*_*ica 5

C11 标准的第 6.2.5 节解释了:

算术类型和指针类型统称为标量类型。数组和结构类型统称为聚合类型。

继续贯穿整个标准,您会发现哪些操作和赋值可用于标量和聚合类型。

你的声明:

结构变量是标量,因此您可以使用它执行与其他标量相同类型的操作。

与 C 标准直接矛盾,因为结构是聚合类型而不是标量。也就是说,在有限的情况下,结构确实具有与标量相同的属性。例如,您可以分配两个相同类型的结构,并且复制构造函数在两个结构之间提供浅拷贝(分配)。还有其他情况,但请注意它们是例外而不是规则。

我怀疑该声明是针对struct可以将 a 视为该特定操作的标量的情况之一做出的。在不知道正在讨论什么操作的情况下,我不能进一步说。

  • 不知道我是否应该在这里问这个问题,但为什么问题会无缘无故地被否决?我不能再问问题了,因为我之前的两个问题(我一年前问的这个和另一个问题没有得到很好的回应)。我是一个初学者,这些事情对我来说并不像对本网站上有高代表的人那么明显。我只是在检查过类似的问题不在此处后才发布的。好奇感觉不好:/ (2认同)
  • 是的,我们都遇到过这种情况。它比一年前好多了。我发誓,曾经有一群四处游荡的投反对票蹂躏的补间,他们有一些错误的观点,认为投反对票会让自己看起来更好。值得庆幸的是,大多数人现在已经长大了,或者已经离开去寻找不同的东西。很高兴我能帮上忙——这个网站真的值得你付出所有的努力,而且这些人的知识水平和深度是首屈一指的。 (2认同)