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、入力パラメータ string を呼び出しています"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 に答える