在C中递增或递减数组索引的值

时间:2013-10-31 01:13:08

标签: c arrays decrement

我的代码如下所示:

int some_array[8];
some_array[7] = an_integer;
if ( 550 < some_value ) {
  some_array[7]--;
  log("Lowered the value");
}

我希望如果我在日志中看到字符串“降低值”,我应该知道代码正在执行。但是,我看到记录的字符串,但值不会更改。 C some_array[7]--中是否存在我遗漏的内容?

2 个答案:

答案 0 :(得分:0)

int some_array[8];
int some_array[7] = an_integer;  //This is the problem line.
if ( 550 < some_value ) {
   some_array[7]--;
   log("Lowered the value");
}

此代码没有按照您的想法执行。

您没有some_array 8个索引。你有some_array有7个索引,而some_array[7]超出了some_array[]实际拥有的范围(但是C没有为此抛出异常)。试试这个:

int some_array[8];
some_array[7] = an_integer;
if ( 550 < some_value ) {
   some_array[7]--;
   log("Lowered the value");
}

答案 1 :(得分:-2)

试试这个

int some_array[8];
int some_array[7] = an_integer;

if ( 550 < some_value ) {
  some_array[7] = some_array[7]--;
  log("Lowered the value");
}