为什么我打印的char不起作用?

ela*_*a17 1 c printf char

这让我大吃一惊.我真的不知道这是什么.我有以下代码:

char cSexMF = 'M';

printf("%c \n", &cSexMF);
Run Code Online (Sandbox Code Playgroud)

它应该输出M但是每次我运行代码时它都会出现一个不同的数字或字母或符号,或者它真正的想法.我认为这是一个直截了当的命令,但显然我甚至不能再做了.

谁能提供一些有关为什么会发生这种情况的见解?

Iha*_*imi 5

因为你传递了错误的参数.

"%c"说明符需要一个char和你路过它有型的变量的地址char *.

要使其工作,只需删除&运算符的地址

printf("%c\n", cSexMF);
Run Code Online (Sandbox Code Playgroud)

你可能会感到困惑,因为如果被它scanf()&将是必需的,原因是scanf()需要修改的变量,你通过它的地址的内容,并修改它通过一个指针.该printf()功能,需要的价值,而不是地址.

此外,还启用编译器警告.作为一名学习c语言的程序员,它将为您节省很多问题,即使是经过实验的程序员也会使用警告来防止愚蠢的错别字.