c - 为什么我可以在 C 中将整数隐式转换为 char

标签 c casting integer char

我想知道,为什么在 C 中可以将整数隐式转换为字符?

例如:

int i = 2789;

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

会返回一个字符,因为它会截断从最重要的位开始的位。 但通常你不能真正隐式转换,如果这意味着你会失去精度,那么为什么我可以在这里这样做?

最佳答案

这里没有隐式转换。

printf 是一个variadic 函数,这意味着任何 char 类型的参数都会被转换为 int在函数被调用之前。您的参数已经是 int 类型,因此不会发生转换。

关于c - 为什么我可以在 C 中将整数隐式转换为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068578/

相关文章:

vb.net - vb.net中有没有将字符串转换为整数的函数?

c++ - 对相当大的整数的大集合的操作的快速实现

c - 在等待响应的同时保持游戏运行?

c - 拆分字符串并将其存储在 C 中的不同变量中

在 Windows 上创建兼容 macOS 和 Linux 的静态库

c - 使用 Read 系统调用时,While 循环不会退出

c++ - 在 C++ 中将 double 转换为 intptr_t

c++ - 如何将 LONG 转换为 CString?

c - 为什么这个定义宏要执行强制转换?

ruby - 如何干净地验证用户输入是否是 Ruby 中的整数?