我无法获得打印初始化和声明的字符的功能。
#include <stdio.h>
int main() {
char letter1 ="i";
char letter2 ="n";
char letter3 ="C";
printf ("Programming %c%c %c\n", letter1, letter2, letter3);
return 0;
}
我希望它显示
"Programming in C"
使用
printf ("Programming %c%c %c\n", letter1, letter2, letter3);
我收到以下错误
main.c:4:8: warning: incompatible pointer to integer conversion
initializing 'char' with an expression of type 'char [2]' [-Wint-
conversion]
char letter1 ="i";
^
我还没有了解指针或任何东西,我习惯于使用更简单的语言。我正在尝试完成edX课程,但是我发现质量很差并且节奏繁琐。
如果您能在这里帮助我并向我推荐更好的学习C的资源,会很高兴
谢谢
答案 0 :(得分:0)
char letter1 ="i";
不幸的是,"i"
是一个字符串。使用'i'
表示字符,或者如果实际需要使用"i"[0]
。
如果编译器未发出警告,则说明它是可怕的编译器,或者您没有打开适当的警告。如果您收到警告而忽略了它...
答案 1 :(得分:-2)
C中的数组是指向第一个元素的指针。数组中的所有其他元素在堆栈堆栈的第一个元素之后。 C中的字符串由char数组表示。因此,以下示例将起作用:
char str[3];
str[0] = 'A';
str[1] = 'B';
str[2] = 'C';
幸运的是,C允许使用简写形式表示字符串。以下是两个示例:
char str[] = "ABC";
char str* = "ABC";
如前所述,数组是指针。因此,两个示例都可以。另外,请注意,我们直接初始化数组时并没有输入数组的大小。
如果您真的只想使用char变量来打印字符串,则必须使用引号,例如以下示例:
letter1 = 'A';
letter2 = 'B';
letter3 = 'C';
作为文献,我强烈推荐Hanly Koffman撰写的《 C中的问题解决和程序设计》。阅读起来很简单,并且有很多代码示例。