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

时间:2012-12-26 10:33:17

标签: objective-c c xcode

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

#include <stdio.h>

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;
}

2 个答案:

答案 0 :(得分:7)

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

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

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

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

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

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

的指针

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

course

的情况相同

答案 1 :(得分:0)

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

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