首页 > 解决方案 > “%s”需要“char *”类型的参数,但参数的类型为“int”

问题描述

我确实看到了一个类似的问题,给出的解决方案是将其声明为 char 数组而不是 char。我这样做了,但仍然看到错误。

我的代码目前是这样的:

#include <stdio.h>
char ticTacToeBoard(char board[11])

{
    printf("%s %s %s %s %s", board[0], board[10], board[1], board[10], board[2]);
}


int main()

{
    char board[11] = {' ',' ',' ',' ',' ',' ',' ',' ',' ','__','|'};
    ticTacToeBoard(board);

    return 0;
}

错误在代码的 printf 行

标签: cerror-handlingcompiler-errors

解决方案


函数参数board是一个 char 指针,因此当您尝试打印该 char 指针的索引时,它会取消引用该索引中的 char。所以发生的事情是你尝试打印一个字符串,但变量是一个字符。如果要打印字符,则需要将 更改%s%c. 这样,您将从字符“数组”中的索引中打印所需的字符。


推荐阅读