我正在学习C中的指针,并从一个基本想法开始,但我一直在收到错误。我究竟做错了什么?

时间:2015-04-02 19:52:46

标签: c arrays pointers

我正在学习C中的指针,并从一个基本想法开始:使用指针来完成并更改数组。然后打印该数组。我犯了什么错误?

我被告知你可以通过将它分配给指针变量来完成数组,如下所示:

int main(void){
  int i = 0;
  char entry[40], n, p;

  p = entry;

  printf("Enter a sentence: ");
  while ((n = getchar()) != '\n'){
    *(p + i) = n;
    i++;
  }
  *(p + i) = 0;

  printf("%s", p);

  return 0;
}

我现在已经尝试了不同的方法,可以使用一些帮助。我一直收到错误,例如:

  • 赋值从没有强制转换的指针生成整数

  • 作业中的无效左值

1 个答案:

答案 0 :(得分:1)

  •   

    赋值使用指针生成整数而不使用强制转换

    这是指代码p = entry,您尝试将指针(entry)分配给p,类型为char

  •   

    赋值中的左值无效

    这是指*(p + i) = n,因为(p + i)是一个数字(对于这种情况,char可以被视为int)而不是指针,因此无法分配。