我正在尝试学习 C,但由于某种原因我的程序不想打印字母。它可以打印其他所有东西,比如整数和浮点数。
它也没有给我一个错误,它只是跳过了字符应该在的那一行。
我尝试简单地打印出字母“E”作为测试,但它什么也没打印出来。
#include <stdio.h>
int main()
{
int mynum = 6;
float myfloat = 3.14;
char* myletter = "E";
printf("%i\n",mynum);
printf("%f\n",myfloat);
printf("%c\n",myletter);
}
要输出字符串,您需要使用转换说明符
s
而不是 c
printf("%s\n",myletter);
否则这个电话
printf("%c\n",myletter);
尝试 tp 将指针输出为调用未定义行为的字符。
如果你只想输出字符串文字的第一个字符,那么你应该写
printf("%c\n",*myletter);
或
printf("%c\n",myletter[0]);
注意字符串字面量
"E"
在内存中是作为字符数组存储的,如
{ 'E', '\0' }
要打印一个字符,您可以这样做:
char myletter = 'E'; // <-- Note the single quotes and is not a pointer
printf("%c\n",myletter);
打印字符串:
char *myletter = "E"; // <-- Note the double quotes
printf("%s\n",myletter);