int什么意思C语言/底层存储数值的基础变量类型

int什么意思C语言/底层存储数值的基础变量类型

刚翻开C语言实训课件的时候,满脑子都在纠结int什么意思C语言,敲代码编译报错弹出变量未定义的红色提示,盯着屏幕愣了快十分钟,连课本都懒得翻。

当时跟着实训老师写简易计算程序,随手敲了float存储成绩,运行出来的结果总带着一串小数点,老师路过瞥了一眼代码,直接让把float全部替换成int。折腾好久才搞明白,int划定的数值区间只能放下完整整数,小数部分会直接舍弃,不会保留多余浮点位数。

写代码的时候试过随手定义int a=99.9,编译软件不会直接报语法错误,运行程序打印a的值,屏幕上只跳出99,原本的小数部分凭空消失,当时还以为编译器出现了故障,反复重启软件两次,结果输出结果没有半点变化。

同宿舍的同学写银行存取款代码,全程只用int定义余额变量,测试转账输入100.5元,程序直接把0.5元抹去,账户余额只增加一百,他调试了整整两节实训课都没找到问题根源,最后还是我提醒他更换浮点类型,才修复这个逻辑漏洞。

机房电脑的编译器默认给int开辟四个字节的内存空间,早些年老旧编译器还存在两个字节的版本,两种规格能承载的数字上下限差距极大。曾经随手写int num=32768,老旧编译环境直接弹出数值溢出警告,程序运行直接闪退,切换成现代编译器之后,这个数值却能正常输出。

上课练习循环求和代码,连续定义多个int变量存放循环累加数值,循环次数拉高到十万次之后,变量存储的数字超出int承载上限,屏幕输出的数字直接变成负数,完全偏离原本计算结果。当时只以为循环逻辑写反,逐行核对代码耗费半节课,最后才反应过来是int的数值范围限制拖了后腿。

后来试着主动划分变量类型,需要统计人数、次数、整数金额这类无小数的数据,统一选用int,需要计算价格、分数、测量数据这类带小数的内容,直接改用浮点类型,写出来的代码再也没出现过数值丢失、溢出的问题。

课后独自打开编程软件做练习,随手新建空白文件,敲下int test=0;这条基础语句,编译运行没有任何报错,黑色控制台平稳输出数字0,这一刻才彻底摸透这个关键字最基础的使用逻辑。

傍晚收拾实训课本的时候,指尖划过课本上标注int的段落,忽然想起当初第一次调试代码出错的窘迫,指尖下意识敲击桌面,没再多想,合上书本起身走出机房。