%s期望类型为'char *',但参数2的类型为'int'

时间:2013-09-09 11:05:11

标签: c

我是C的新手,所以我们完成了这项任务,并试图让它更复杂。

http://pastebin.com/A6z4MHGn

我目前的问题是制作char *类型的wordMin,我不知道为什么它还没有。

我尝试制作类似但更短的程序

int numHrs = 2;
char* hours;

if (numHrs == 1) {
    hours = "hour";
} else {
    hours = "hours";
}

printf("\n%s\n\n", hours);

这里工作得很好。

对我的pastebin代码的任何反馈都非常受欢迎,因为我不熟悉编码并且不知道最聪明的做事方式。

2 个答案:

答案 0 :(得分:5)

在一行中定义或声明变量时:

char* wordHrs, wordMin, wordSec;

它意味着首先将具有指向char的类型指针,而其他只是chars。 因此,在多行中定义变量,或者在每个将成为指针的变量名之前键入星号符号:

char *wordHrs, *wordMin, *wordSec;

char* wordHrs;
char* wordMin;
char* wordSec;

答案 1 :(得分:1)

此行可能是您遇到的问题之一(wordMinchar[]

printf("%s", (char) wordMin);

你为什么要施放wordMin

printf("%s", wordMin);

应该有效。一个事物的数组(在你的情况下为char)总是衰减到指向那个“某事”的指针,所以char*就在这里。

(因为在调用char的情况下int转换为printf,错误消息有点虚假