如何修复错误格式指定类型’char *’但参数的类型为’char’

我收到一条警告:“Format指定类型’char *’,但参数的类型为’char’”,用于student变量。 我正在将一本书中的代码复制/粘贴到xcode中,我不知道如何解决这个问题。 在控制台中打印的唯一内容是“(lldb)”。 任何建议

#include  void congratulateStudent(char student, char course, int numDays) { printf("%s has done as much %s Programming as I could fit into %d days.\n", student, course, numDays); } int main(int argc, const char * argv[]) { // insert code here... congratulateStudent("mark", "Cocoa", 5); return 0; } 

 void congratulateStudent(char *student, char *course, int numDays) 

%s表示您要打印字符串(字符数组)

char student这意味着学生是char类型

所以这里的学生不是指向字符串的指针

为了将学生类型从char更改为字符串指针,您必须为学生char *student添加星号

在您的代码中,您使用输入参数字符串"mark"调用congratulateStudent 。 因此,要支持此字符串,应将输入参数student定义为string的指针

所以你在学生的定义中缺少星号

同样的事情course

void congratulateStudent(char *student, char *course, int numDays)

使用函数签名,因为您在main中将字符串作为参数传递给函数但函数具有字符类型参数。