C语言的数据类型(整形int、字符型char、浮点型float、double)
创作时间:
作者:
@小白创作中心
C语言的数据类型(整形int、字符型char、浮点型float、double)
引用
CSDN
1.
https://m.blog.csdn.net/Siri_s12/article/details/143997006
本文将详细介绍C语言中的各种数据类型,包括整形、字符型、浮点型和布尔型等。文章内容详尽,涵盖了数据存储的基本单位、signed和unsigned的区别、各种数据类型的取值范围以及sizeof操作符的使用等。
一、计算机数据存储和处理的基本单位
- 位(bit):计算机中最小的数据单位,只能表示0或1
- 字节(Byte):由8位组成,是计算机处理数据的基本单位
- 千字节(KB, Kilobyte):1KB等于1024字节,因为计算机使用二进制,所以1024(2^10)是1KB
- 兆字节(MB, Megabyte):1MB等于1024KB,也就是1024 * 1024字节
- 吉字节(GB, Gigabyte):1GB等于1024MB ,也就是1024 * 1024 * 1024字节
- 太字节(TB, Terabyte):1TB等于1024GB,也就是1024 * 1024 * 1024* 1024字节
- 拍字节(PB, Petabyte):1PB等于1024TB
- 在编程中,字节是定义数据类型和内存分配的基础
二、signed 和 unsigned
- C 语⾔引⼊
signed和unsigned关键字来修饰char、short、int、long等整型家族的类型。 - 使⽤
signed关键字,表⽰⼀个类型 带有正负号 ,包含负值 - 使⽤
unsigned关键字,表⽰该类型 不带有正负号 ,只能表⽰零和正整数
三、 数据类型介绍
- “类型”指的是相似数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。
- “整数类型”用来描述整数,比如
1、2、3 - “字符类型”用来描述字符,比如
'a'、'b'、'c'、"asdfg" - “浮点型类型”用来描述小数,比如
1.1、3.14
1.字符型
(1)char类型
char = character意思是 字符char类型通常用于存储 单个字符 ,例如 字母、数字、符号char类型通常占用 1个字节(8位) ,这个大小是由编译器和机器架构决定。- ASCII 编码中,
char可以表示数值范围是从 0 到 127(在8位系统中)
(2) signed char 和 unsigned char
signed char可以表示的数值范围是从 -128 到 127(在8位系统中)char = signed char,在C语言,如果不特别指定,char默认是有符号的。这意味着如果你只是声明char而没有指定signed或unsigned,它将被当作signed charunsigned char可以表示的数值范围是从 0 到 255(在8位系统中)。
2.整型
(1)整形类型的主要区别
- 有符号(signed) 可以表示正数和负数
- 无符号(unsigned) 只能表示非负数,因此数值范围的上限是 相应有符号类型的两倍
int = signed int,int 类型,默认是带有正负号的,也就是说 int 等同于 signed int ,短整型、整形、长整形、更⻓的整型 也是如此- 大小 (具体范围不需要背蛤,了解一下就好):
short int通常为16位int通常为32位long int可能是32位或64位long long int通常为64位
具体的数值范围和位数可能会因为不同的编译器和系统架构而有所不同。
(2)整型
- 三种:
int、signed int、unsigned int int = signed int有符号的整型,是 最常用的 整数类型,通常为32位,数值范围取决于具体的编译器和系统架构,但通常是 -2147483648到2147483647unsigned int无符号的整型,数值范围为 0到4294967295
(3)短整型
- 三种:
short int、signed short int、unsigned short int short int = signed short int有符号的短整型,可以存储的数值范围较小,通常为 -32768到32767(16位)unsigned short int无符号的短整型,只能存储 非负数 ,数值范围通常为 0到65535(16位)
(4)长整形
- 三种:
long int、signed long int、unsigned long int long int = signed long in和unsigned long int的取值范围确实取决于具体的编译器和系统架构- 有符号的长整型(signed long int):
- 在32位系统中,
long int = signed long in通常是32位的,数值范围通常为 -2147483648到2147483647 - 在64位系统中,
long int = signed long in可能是64位的,数值范围通常为 -9223372036854775808到9223372036854775807 - 无符号的长整型(unsigned long int):
- 在32位系统中,
unsigned long int通常是32位的,数值范围通常 0到4294967295 - 在64位系统中,
unsigned long int可能是64位的,数值范围通常 0到 18446744073709551615
(5)更长整形
- 三种(C99中引⼊):
long long int、signed long long int、unsigned long long int long long int = [signed] long long int有符号的更长整型,通常为64位,数值范围为 -9223372036854775808到9223372036854775807unsigned long long int无符号的更长整型,数值范围为 0到18446744073709551615。
3.浮点型
float单精度浮点型double双精度浮点型long double精度更长的浮点型
4.布尔类型
(1)在C语言中
- 0表示假
- 非0表示真
(2)_Bool
- 在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的
_Bool - 布尔类型的使⽤得包含头⽂件
<stdbool.h> - 布尔类型变量的取值是:
true或者false
(3)_Bool 的其他写法
_Bool写成bool这样也没问题#define bool _Bool#define false 0#define true 1
四、各种数据类型的取值范围
1. sizeof 操作符
sizeof是 C 语⾔提供的⼀个 运算符(操作符) ,也是⼀个 关键字
(1) sizeof 的使用形式
sizeof返回某种数据类型或某个值占⽤的字节数量,它的参数可以是 数据类型 的关键字,也可以是 变量名 或 某个具体的值sizeof不仅仅可以计算内置的类型的⼤⼩,计算 数组 、 ⾃定义类型 的⼤⼩都是可以的- 语法:
sizeof(type) - 整型类型的变量是4个字节,直接使⽤整型类型也是4个字节
sizeof的括号中如果给的不是类型的话,括号可以省略的
(2) 计算各数据类型的长度
- C语言标准:
sizeof(long)>=sizeof(int)sizeof(long double)>=sizeof(double)
(其他的同理)
(3) sizeof 中的表达式不计算
sizeof在代码进行编译的时候,就 根据表达式的类型确定 了,而表达式的执行要在程序运行期间执行,在编译期间已经将sizeof处理掉了,所以在运行期间就不会执行表达式了
(4) sizeof 的返回类型(这里涉及占位符知识,博主下个帖子会说到)
sizeof运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,不同的系统中,返回值的类型有可能是unsigned int,也有可能是unsigned long,甚⾄是unsigned long long,对应的printf()占位符分别是%u、%lu和%llu。这样不利于程序的可移植性。- C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名
size_t,⽤来统⼀表⽰ sizeof 的 返回值类型 。该别名定义在stddef.h头⽂件(引⼊stdio.h时会⾃动引⼊)⾥⾯,对应当前系统的 sizeof 的返回值类型,可能是unsigned int,也可能是unsigned long。 - 注:VS2022中
size_t是定义在vcruntime.h中的,不同的编译器实现上略有差异的。 - C 语⾔还提供了⼀个常量
SIZE_MAX,表⽰size_t可以表⽰的最⼤整数。所以,size_t能够表⽰的整数范围为[0, SIZE_MAX]。 printf()有专⻔的占位符%zd或%zu,⽤来处理size_t类型的值。
#include <stdio.h>
int main()
{
printf("%zd\n", sizeof(int));
return 0;
}
上⾯代码中,不管 sizeof 返回值的类型是什么, %zd 占位符(或 %zu )都可以正确输出。如果当前系统 不⽀持 %zd 或 %zu ,可使⽤ %u (unsigned int)或 %lu (unsigned long int)代替。
五、在 VS2022 查询数据类型的取值范围
1.查询网站
2.在 limits.h文件 和 float.h文件 查询
(1)查询 limits.h 文件
- 打开VS2022的 储存磁盘 ,搜索 limits.h
(2)查询 float.h 文件
- 打开VS2022的 储存磁盘 ,搜索 float.h
热门推荐
“彩泥乐”课程:激发幼儿创造力的创新实践
狗尿味道很大怎么去除?
Unity打怪兽游戏开发教程:从零开始创建你的冒险之旅
火影中宇智波一族的6位天才忍者:佐助带土大器晚成,鼬年少成名
VGA/DVI/HDMI/DP/Type-C等常用显示接口对比介绍
彩泥学英语:让娃在玩乐中掌握基础词汇
自制彩泥大作战:亲子互动新玩法
元旦聚会必备:李白苏轼教你敬酒词
朋友聚会必学:经典祝酒词大集合
揭秘 | 刚尿完不久又想上厕所?真相原来是……
三平祖师公生平事迹
蹲便器冲不走大便原因有哪些
卫生间马桶和蹲坑,哪个更好?脏的因素让你不再纠结!
《无所畏惧2》收视低迷:王阳热依扎演技在线,剧情逻辑遭质疑
王阳发起「听海心声」公益活动,助力听障人士探索水下世界
从《庆余年》滕梓荆到“叔圈顶流”:王阳的演技之路
如何合理安排膳食以促进健康?饮食安排对健康的作用有哪些?
保障能源安全 夯实高质量发展“压舱石”
王者荣耀鲁班7号一枪瞬秒流出装攻略
颐和园开放时间及景点全解析
哥伦布“发现新大陆”,但是他到死都不承认
情节反转:如何让你的故事更出彩?
反转剧情:让你的文案脱颖而出!
《我要买房》教你戏剧反转技巧
《水浒传》教你玩转情节反转
增肌增重吃哪些食品有用
白鹿新作《白月梵星》:原著魅力大揭秘!
《白月梵星》最新剧情揭秘:白烁与梵樾的情感纠葛
《大圣归来》:一部动画电影如何成就国漫品牌
《中国奇谭》爆火,国产动画真的崛起了吗?