这让我心潮澎湃我真的不知道这是怎么回事我有以下代码:

char cSexMF = 'M';

printf("%c \n", &cSexMF);

但是每次我运行代码时,它都会输出M,它会输出一个不同的数字、字母或符号,或者任何它真正喜欢的东西我以为这是一个直截了当的命令,但显然我再也做不到了。
有谁能提供一些洞察为什么会发生这种事吗?

最佳答案

因为你传递了错误的参数。
"%c"说明符需要一个char,并且您正在传递类型为char *的变量的地址。
要使其工作,只需删除操作员的&地址

printf("%c\n", cSexMF);

您可能会感到困惑,因为如果是scanf()则需要&,原因是scanf()需要修改变量的内容,为此您需要传递变量的地址并通过指针修改它printf()函数需要值,而不是地址。
同时,启用编译器警告作为一个学习c语言的程序员,它会帮你省下很多问题,甚至有经验的程序员也会使用警告来防止愚蠢的输入错误。

08-16 09:01