找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1709|回复: 13
收起左侧

C语言变量赋值问题

[复制链接]
ID:709761 发表于 2022-5-28 09:01 | 显示全部楼层 |阅读模式
为什么给变量赋值,超过数据类型最大值,编译为什么不报错
51hei图片_20220528085901.png
回复

使用道具 举报

ID:624769 发表于 2022-5-28 11:27 | 显示全部楼层
给变量赋值,超过数据类型最大值,属于:溢出
而溢出, 属于正常范畴,并不属于错误,所以,编译器直接用有效位继续编译,是不会报错的。

举个简单的例子, 一个 uchar 类型变量,0~255  当你255的时候继续+1, 就会归0,这是正常的,不属于错,而判断是否溢出,就要你通过程序检测标志位来决定,是用进位,还是做别的处理。
回复

使用道具 举报

ID:883242 发表于 2022-5-28 12:31 | 显示全部楼层
float表示最大范围是-3.4e38 ~ 3.4e38,你这才4.5e6,是不是上学的时候没学过科学计数法啊!?
回复

使用道具 举报

ID:554500 发表于 2022-5-28 14:54 | 显示全部楼层
编译器只管语法对错
回复

使用道具 举报

ID:1026496 发表于 2022-5-28 18:00 | 显示全部楼层
编译器不检查变量的有效范围哦
回复

使用道具 举报

ID:709761 发表于 2022-5-30 10:06 | 显示全部楼层
Hephaestus 发表于 2022-5-28 12:31
float表示最大范围是-3.4e38 ~ 3.4e38,你这才4.5e6,是不是上学的时候没学过科学计数法啊!?

看清小数点
回复

使用道具 举报

ID:883242 发表于 2022-5-30 12:52 | 显示全部楼层

你回初中学习什么叫科学计数法去!
回复

使用道具 举报

ID:1030991 发表于 2022-5-30 16:37 | 显示全部楼层
c语言报错好像只管语法错误,别的不管
回复

使用道具 举报

ID:883242 发表于 2022-5-30 18:16 | 显示全部楼层
杨鑫荧 发表于 2022-5-30 17:09
给变量赋值,超过数据类型最大值,属于:溢出 而溢出, 属于正常范畴,并不属于错误,所以,编译器直接用有 ...

你没学过科学计数法?根本就没超过类型最大值!
回复

使用道具 举报

ID:624769 发表于 2022-5-30 18:59 | 显示全部楼层
现在的人,真的很喜欢:  抛开本质,看现象……

问题的本质是什么?
问题的本质只有一句话:  为什么给变量赋值,超过数据类型最大值,编译为什么不报错

针对这个问题:
学过编程基础的人都知道。
你定义一个 char  a;  (-128~ 127)
你让  a = 300;  
会报错么??

那么,实际试验的时候,定义的数字有没有真的超限,还重要么?
回复

使用道具 举报

ID:871721 发表于 2023-10-26 23:26 来自手机 | 显示全部楼层
Hephaestus 发表于 2022-5-30 12:52
你回初中学习什么叫科学计数法去!

他写的是"4500000.9000000"中间有个小数点,读法是四百五十万点九,至于为什么9后面为什么加那么多的零我不知道
回复

使用道具 举报

ID:883242 发表于 2023-10-27 07:55 | 显示全部楼层
3253087609ydrq 发表于 2023-10-26 23:26
他写的是"4500000.9000000"中间有个∈悖练ㄊ撬陌傥迨虻憔牛劣谖裁�9后面为什么加那么多的零 ...


float表示最大范围是-3.4e38 ~ 3.4e38,你这才4.5e6,是不是上学的时候没学过科学计数法啊!?
回复

使用道具 举报

ID:195496 发表于 2023-10-27 08:19 | 显示全部楼层
编译器只取有效位数,超出精度范围的没有用,会舍弃掉的。
回复

使用道具 举报

ID:871721 发表于 2023-11-10 00:01 来自手机 | 显示全部楼层
Hephaestus 发表于 2023-10-27 07:55
float表示最大范围是-3.4e38 ~ 3.4e38,你这才4.5e6,是不是上学的时候没学过科学计数法啊!?

小学只学了a×10(1≤a<10)这种,没学关于e的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表