C 内联递增数组索引

C 内联递增数组索引,c,C,我是新来C的。很抱歉问了这么一个基本的问题 int ArrayIndex = 0; int intArray[ArrayIndex++] = somevalue; 我读过一本书,书中说何时执行后缀递增/递减不是一个简单的问题。书中还模糊地提到了一个叫做序列点的概念来回答这个问题。它表示更新值[递增/递减]将在上一个序列点和下一个序列点之间进行。这种序列点的示例是表达式语句的结尾 我的问题是,在所有编译器/平台中,上面的代码片段是否总是为数组索引零和增量ArrayIndex赋值?是否有可能先递增

我是新来C的。很抱歉问了这么一个基本的问题

int ArrayIndex = 0;
int intArray[ArrayIndex++] = somevalue;
我读过一本书,书中说何时执行后缀递增/递减不是一个简单的问题。书中还模糊地提到了一个叫做序列点的概念来回答这个问题。它表示更新值[递增/递减]将在上一个序列点和下一个序列点之间进行。这种序列点的示例是表达式语句的结尾

我的问题是,在所有编译器/平台中,上面的代码片段是否总是为数组索引零和增量ArrayIndex赋值?是否有可能先递增ArrayIndex,然后将某个值赋给intArry[1]

有人能解释一下吗

我的问题是,上面的代码片段是否总是赋值 将数组索引设置为零并增加数组索引 编译器/平台

回答:是的

是否有可能先递增ArrayIndex,然后再递增 为intArry[1]指定了somevalue

答:如果你使用

int intArray[++ArrayIndex] = somevalue;
这将增加ArrayIndex,然后将值赋给数组索引1

我的问题是,上面的代码片段是否总是赋值 将数组索引设置为零并增加数组索引 编译器/平台

回答:是的

是否有可能先递增ArrayIndex,然后再递增 为intArry[1]指定了somevalue

答:如果你使用

int intArray[++ArrayIndex] = somevalue;
这将递增ArrayIndex,然后将值赋给数组索引1

++ArrayIndex递增ArrayIndex,并计算为ArrayIndex的新值

ArrayIndex++计算为ArrayIndex的旧值,并递增ArrayIndex

这应该能回答你的问题。提示:答案是肯定的。

++ArrayIndex增加ArrayIndex并计算为ArrayIndex的新值

ArrayIndex++计算为ArrayIndex的旧值,并递增ArrayIndex


这应该能回答你的问题。提示:答案是肯定的。

至少可以说,这里的命名约定与此无关。@AlexeyFrunze你说得对。只要他是始终如一的,这就不会麻烦了,不是那样的。首先,没有询问命名约定。其次,它们是主观的或特定于团队/项目的。第三,由于所选择的命名约定,该问题的可读性不像您在其他一些问题中看到的格式不良的长代码那样低。所以,根本没有一个客观的理由来指出它。@AlexeyFrunze有时候,如果你添加了额外的注释/改进,即使没有被要求,也不会有什么坏处。但是,正如我之前所说的,我同意你的看法。。我不应该提及它,这就是为什么我编辑了我的答案并删除了它。有时是的,我同意,但这次不是。至少可以说,命名约定在这里是非常不相关的。@AlexeyFrunze你是对的。只要他是始终如一的,这就不会麻烦了,不是那样的。首先,没有询问命名约定。其次,它们是主观的或特定于团队/项目的。第三,由于所选择的命名约定,该问题的可读性不像您在其他一些问题中看到的格式不良的长代码那样低。所以,根本没有一个客观的理由来指出它。@AlexeyFrunze有时候,如果你添加了额外的注释/改进,即使没有被要求,也不会有什么坏处。但是,正如我之前所说的,我同意你的看法。。我不应该提及它,这就是为什么我编辑了我的答案并删除了它。有时是的,我同意,但这次不是。