9

我收到一条警告说:“格式指定类型'char *',但参数的类型为'char'”用于学生变量。我正在将一本书中的代码复制/粘贴到 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;
}
4

2 回答 2

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

%s意味着您要打印一个字符串(字符数组)

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

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

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

在您的代码中,您正在调用congratulateStudent带有输入参数的字符串"mark"。所以为了支持这个字符串,输入参数student应该定义为字符串的指针

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

同样的事情course

于 2012-12-26T10:35:12.427 回答
0

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

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

于 2012-12-26T10:46:06.287 回答