char 造成的数据溢出

#include <stdio.h>

int main(void){

char i;

for(i = 0; i < 255; i++){

printf("i = %d\r\n",i);

}

printf("循环退出了\r\n");

while(1){

; //空循环

}

return 0;

}

分析:

i 从0开始自增:0,1,2 ...一直加到 127

  1. i++ 到128的时候,有符号char溢出,直接变成负数 -128,再自增,-127这样就变成了死循环

如果把char i 改成 unsigned char i 或 int i 就可以正常循环

相关推荐
qetfw1 小时前
Bash 内置与外部命令:type、command 与 builtin 验证
linux·开发语言·bash
虚无的纽扣1 小时前
【Linux】信号(上):一个进程是怎么“被通知”的
linux·运维·驱动开发
是枚小菜鸡儿吖1 小时前
听歌截图太普通?我把MusicCard部署到极空间,把歌曲做成随时可开的音乐海报页
服务器·人工智能·后端·ai·大模型
sqc233sqc1 小时前
第 J8 周:ResNeXt-50 算法解析
人工智能·算法
虎鲸不是鱼1 小时前
【虎鲸进化论 13】CI/CD:它在服务器上铺了条流水线
服务器·人工智能·ci/cd·大模型·自进化agent
大哥您好10 小时前
QEMU 11.1.2 多架构编译指南(x86_64 / aarch64 / riscv64)
linux·服务器
hanlin0311 小时前
刷题笔记:力扣第32题-最长有效括号
笔记·算法·leetcode
道满科技11 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python
一拳一个呆瓜11 小时前
【STL】文件系统导航
c++·stl