为什么在我尝试运行下面的C代码时会打印“$”?

为什么在我尝试运行下面的C代码时会打印“$”?,c,C,这张打印的是美元,但不是美元 为什么在我尝试运行上面的C代码时打印$?%C是单个字符的格式说明符;可能正在进行一些转换。您需要%s作为字符串。它实际上会打印一些垃圾,因为您的输入不是单个字符,而是一个字符序列。尝试使用%s而不是%c将字符串传递给printf,而不是char。试试看“ 代码中发生的事情是字符串被传递给printf,但printf需要一个字符。printf现在尝试将此字符串的地址解释为字符。通常,这是未定义的行为。%c表示单个字符。格式说明符和参数不匹配会导致错误。UB未定义的行为

这张打印的是美元,但不是美元


为什么在我尝试运行上面的C代码时打印$?

%C是单个字符的格式说明符;可能正在进行一些转换。您需要%s作为字符串。

它实际上会打印一些垃圾,因为您的输入不是单个字符,而是一个字符序列。尝试使用%s而不是%c

将字符串传递给printf,而不是char。试试看“

代码中发生的事情是字符串被传递给printf,但printf需要一个字符。printf现在尝试将此字符串的地址解释为字符。通常,这是未定义的行为。

%c表示单个字符。格式说明符和参数不匹配会导致错误。UB未定义的行为意味着讨论行为没有用。
#include <stdio.h>
int main()
{
printf("%c\n","\"\"\"\"\"");

}