为什么会出现错误:类型"int"的参数与C中类型"char *"的参数不兼容?

beq87vna  于 2022-12-29  发布在  其他
关注(0)|答案(1)|浏览(315)

我正在尝试在显示器上打印键(字符),我已经对键盘和显示器进行了编程。我现在正在尝试让用户使用键盘写入时间,如果时间有效,它应该打印时间。
我现在正在尝试创建一个函数来打印时间,我实现了一个名为printArray(char Arr[])的函数,如下所示:

void printArray(char Arr[]) {
  int n = 0;
  while(Arr[n] != 0){
    printkeys(Arr[n]);
    n++;
  }
}

printkeys方法打印将数字写入ascii代码(在以前的项目中制作,它工作)
我想打印的时间函数如下所示:

void Timettt(char Arr[], char x, char y){
  printArray((Arr[0]/10 + ASCIIOFFSET));
  printArray((Arr[0]%10 + ASCIIOFFSET));
  putchar(':');
  printArray((Arr[1]/10 + ASCIIOFFSET));
  printArray((Arr[1]%10 + ASCIIOFFSET));
  putchar(':');
  printArray((Arr[2]/10 + ASCIIOFFSET));
  printArray((Arr[2]%10 + ASCIIOFFSET));
}

当我编译代码时,Timettt函数中的printArray部分出现错误:“int”类型的参数与“char*”类型的参数不兼容
我不知道为什么当我所有的函数包括print keys函数都是void并且参数类型为char时,它会出现。
我很乐意接受您给予的任何帮助/建议
我尝试过编译它并以其他方式更改Timettt函数,但仍然得到相同的错误

vngu2lb8

vngu2lb81#

char Arr[]是指向char数组的指针,因此Arr[0]char
char除以10并加上(我必须假设的是)一个数值常量是int,这是由于int可表示的整数类型的整数提升规则。
我不知道你为什么要这么做,但是你的代码说的是你想把一个整数值传递给一个函数,这个函数期望一个指向char数组的指针,这是没有意义的,这就是为什么你的编译器会抱怨。

相关问题