2

我是 C 的新手。对于这样一个基本问题,我很抱歉。

int ArrayIndex = 0;
int intArray[ArrayIndex++] = somevalue;

我读过一本书,它说何时执行后缀递增/递减并不是一个简单的问题。这本书还模糊地提到了一个被称为sequence points回答问题的概念。它说更新值[递增/递减]将在前一个和下一个序列点之间进行。这种序列点的示例是表达式语句的结尾。

我的问题是,在所有编译器/平台中,上述代码片段是否总是分配some value给数组索引零并增加 ArrayIndex?是否有可能先增加 ArrayIndex,然后将某个值分配给 intArry[1];?

任何人都可以解释一下吗?

4

2 回答 2

2

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

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

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

于 2013-04-15T10:19:43.450 回答
2

我的问题是,在所有编译器/平台中,上述代码片段是否总是为数组索引零分配一些值并增加 ArrayIndex?

答案:是的

是否有可能先增加 ArrayIndex,然后将某个值分配给 intArry[1];?

答:如果你使用

int intArray[++ArrayIndex] = somevalue;

这将递增ArrayIndex,然后将值分配给数组索引 1

于 2013-04-15T10:17:20.527 回答