使用数组指针会产生错误

时间:2014-01-15 07:02:26

标签: c arrays pointers

 #include<stdio.h>
 int main()
 {
      int N, i,j,k;
      int uglyNumber[1500]={1};
      int *i=uglyNumber;
      int *j=uglyNumber;
      int *k=uglyNumber;

      while(scanf("%d",&N)!=EOF)
      printf("%d\n",uglyNumber[N]);
  }

产生编译器错误:

int differs in levels of indirection from int *

为什么我不能使用指针引用数组uglyNumber[]

4 个答案:

答案 0 :(得分:5)

我认为您收到了错误,因为您定义了ijk两次。代码的其他部分应该运行。

答案 1 :(得分:2)

不会编译。 您已将i,j,k声明为int。

因此,您无法声明*i,*j,*k

*i,*j,*k更改为*ii,*jj,*kk。已编译并可以运行。

答案 2 :(得分:0)

指针i,j&amp; k应该只指向数组的一个元素,即uglyNumber [0],uglyNumber [1]&amp;等...... ..

指针也是一个存储数组元素地址的变量。要存储,您必须使用&amp;符号即* i =&amp; uglyNumber [0]

答案 3 :(得分:-1)

请检查您是否初始化了N的值。它可能是一个垃圾。