取消引用指针总是打印0

时间:2016-11-02 22:27:28

标签: pointers

我正在试图弄清楚为什么解除引用我的指针始终打印0.我放入其他打印语句以确保random()正常工作,并且确实如此。

int * first = (int *) malloc(sizeof(int) * N);
    while( i < N) 
          first[i++] = random();
          printf("%d", first[i]);
    }

我甚至将first的值分配给另一个数组,这些值与random()返回的值相匹配。为什么我的while循环中的print语句总是打印0?

1 个答案:

答案 0 :(得分:0)

      first[i++] = random();
      printf("%d", first[i]);

假设i为0,使用这两行,您将为数组的第一个元素赋值:

first[0] = random();

递增索引:

i++

然后在数组的第二个元素中打印值:

printf("%d", first[1]);

如果你明确地增加索引,那么应该更清楚:

while (i < N)
{
      first[i] = random();
      printf("%d", first[i]);
      i++;
}

(您似乎也错过了开场括号({),但这可能是问题中的拼写错误)