这让我心潮澎湃我真的不知道这是怎么回事我有以下代码:
char cSexMF = 'M';
printf("%c \n", &cSexMF);
但是每次我运行代码时,它都会输出M,它会输出一个不同的数字、字母或符号,或者任何它真正喜欢的东西我以为这是一个直截了当的命令,但显然我再也做不到了。
有谁能提供一些洞察为什么会发生这种事吗?
最佳答案
因为你传递了错误的参数。"%c"
说明符需要一个char
,并且您正在传递类型为char *
的变量的地址。
要使其工作,只需删除操作员的&
地址
printf("%c\n", cSexMF);
您可能会感到困惑,因为如果是
scanf()
则需要&
,原因是scanf()
需要修改变量的内容,为此您需要传递变量的地址并通过指针修改它printf()
函数需要值,而不是地址。同时,启用编译器警告作为一个学习c语言的程序员,它会帮你省下很多问题,甚至有经验的程序员也会使用警告来防止愚蠢的输入错误。