【发布时间】:2018-01-14 01:02:15
【问题描述】:
char name[2];
scanf("%c",name);
printf("%c",name);
我刚刚开始学习 C。我对上面的代码很好奇,我从 printf 输出中得到的内容与我输入的字符不同。而是输出是一些看起来很有趣的符号。谁能给我解释一下?
【问题讨论】:
-
name是一个数组,%c需要一个char(实际上需要一个int参数);例如,要打印char,请使用printf("%c", name[0]);。 -
如果你需要一个字符数组作为输入,你应该使用 scanf("%s",name), printf("%s",name);而不是使用 %c 。 %c 返回指向字符的指针,该字符不能存储在指向字符数组的指针中。
-
scanf("%c",name)==>scanf("%s",name) 和 printf("%c",name)==>printf("%s",name );
-
name 不是字符而是字符 [2]。更改 printf 格式
-
@sourabh1024 什么?
%c返回指向什么的指针?