【发布时间】:2015-03-09 00:09:22
【问题描述】:
我尝试用谷歌搜索并阅读:
但他们都说很明显:你不能分配给数组,因为标准是这样说的。这很好,但我想知道为什么该标准不包括对分配给数组的支持。标准委员会详细讨论了事情,如果他们从未讨论过使数组可分配,我会感到惊讶。假设他们已经讨论过了,他们一定有一些理由不让数组被分配给。
我的意思是,我们可以将一个数组放入一个结构中并分配给该结构就好了:
struct wrapper
{
int array[2];
};
struct wrapper a = {{1, 2}};
struct wrapper b = {{3, 4}};
a = b; // legal
但是直接使用数组是被禁止的,即使它有效地完成了同样的事情:
int a[2] = {1, 2};
int b[2] = {3, 4};
a = b; // Not legal
标准委员会禁止分配给数组的理由是什么?
【问题讨论】:
-
我认为stackoverflow.com/questions/14826952/… 中的答案会给你足够的理由
-
要明确:您不是在寻找任何旧的对分配数组的反对意见,您希望特别标准委员会考虑和拒绝数组分配的文档。对吗?
-
@DanielA.White 所以是因为指针衰减?
-
@人们认为这主要是基于意见:它不是;我很好奇标准委员会的历史讨论(假设他们有),以及这些讨论如何得出不支持这一点的结论。
-
一些早期的 Cdid 允许在特定情况下进行数组分配。 stackoverflow.com/questions/18412094/…`
标签: c arrays variable-assignment