增加数组索引内联

时间:2013-04-15 10:15:46

标签: c

我是C的新手。抱歉这个基本问题。

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

我读过一本书,说明当执行完全后缀增量/减量时不是一个简单的问题要回答。这本书还模糊地谈到了一个名为sequence points的概念来回答这个问题。它表示更新值[递增/递减]将发生在前一个和下一个序列点之间。这种序列点的示例是表达式语句的结束。

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

任何人都能解释一下吗?

2 个答案:

答案 0 :(得分:2)

  

我的问题是,上面的代码段是否总是分配一些值   数组索引为零并递增ArrayIndex   编译器/平台?

答案:是的

  

是否有可能首先递增ArrayIndex   somevalue分配给intArry [1];?

答案:如果你使用

int intArray[++ArrayIndex] = somevalue;

这将增加ArrayIndex,然后将值赋给数组索引1

答案 1 :(得分:2)

++ArrayIndex 增加 ArrayIndex并评估为ArrayIndex的新值。

ArrayIndex++ 评估ArrayIndex的旧值,并递增ArrayIndex

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