#include<stdio.h>
int main()
{
  int i = 577;
  printf("%c",i);
  return 0;
}

编译后,其输出为"A".谁能解释一下我是怎么得到这个的?

推荐答案

%c将只接受最多255个包含的值,然后它将再次从0开始!

577 % 256 = 65; // (char code for 'A')

C++相关问答推荐

函数指针始终为零,但在解除引用和调用时有效

不同到达时间的轮询实现

C/SDL程序,渲染不使用我的渲染器

核心转储文件中出现奇怪的大小变化

如何将字符串传递给函数并返回在C中更改的相同字符串?

正确的TCP/IP数据包 struct

Clang警告称,`ffi_type`与`sizeof`不兼容

GCC不顾-fno-Builtin-SINCOS旗帜向SINCOS发出呼唤

解决S随机内存分配问题,实现跨进程高效数据共享

Vcpkg的配置文件

==284==错误:AddressSaniizer:堆栈缓冲区下溢

`预期说明符-限定符-列表在‘(三元运算符中的’token`‘之前

如何在不读取整个字符串的情况下删除UTF8字符串的尾随空格以提高性能?

被调用方函数内部的C-Struct变量,它是指针还是无关紧要

Ubuntu编译:C中的文件格式无法识别错误

使用 _Atomic float 时,MSVC 编译的代码会命中调试断言

Linux memcpy 限制关键字语法

为什么INT_MIN是在c语言的头文件limits.h中定义的(-INT_MAX-1)而不是直接使用-2147483648

malloc 属性不带参数

如何正确探测平台设备?