这让我大吃一惊.我真的不知道这是什么.我有以下代码:
char cSexMF = 'M';
printf("%c \n", &cSexMF);
Run Code Online (Sandbox Code Playgroud)
它应该输出M但是每次我运行代码时它都会出现一个不同的数字或字母或符号,或者它真正的想法.我认为这是一个直截了当的命令,但显然我甚至不能再做了.
谁能提供一些有关为什么会发生这种情况的见解?
因为你传递了错误的参数.
该"%c"说明符需要一个char和你路过它有型的变量的地址char *.
要使其工作,只需删除&运算符的地址
printf("%c\n", cSexMF);
Run Code Online (Sandbox Code Playgroud)
你可能会感到困惑,因为如果被它scanf()的&将是必需的,原因是scanf()需要修改的变量,你通过它的地址的内容,并修改它通过一个指针.该printf()功能,需要的价值,而不是地址.
此外,还启用编译器警告.作为一名学习c语言的程序员,它将为您节省很多问题,即使是经过实验的程序员也会使用警告来防止愚蠢的错别字.