C语言梦开始的地方2:数据类型
文章目录C语言梦开始的地方2数据类型数据类型sizeof数据类型取值范围变量的创建全局变量和局部变量C语言梦开始的地方2数据类型上一章节我们说到了C语言的发展史C语言的组成部分C语言的三大结构和C语言的关键字。本章节我们深入了解C语言的数据类型数据类型C语言提供了丰富的数据类型来描述生活中的各种数据。整数类型来描述整数字符类型来描述字符浮点类型来描述小数在上一章节我们说到关键字时给了表格但是没有展开部分关键字说一说数据类型可以分成两类一类是内置类型就是我们刚才说的整数类型字符类型和浮点类型这种的一类是自定义类型比如数组结构体这种。自定义类型我们后续在进行了解本章节我们了解内置类型即可数据类型说明大小(字节)取值范围char字符型1-128 ~ 127unsigned char无符号字符型10 ~ 255short短整型2-32768 ~ 32767unsigned short无符号短整型20 ~ 65535int整型4-2147483648 ~ 2147483647unsigned int无符号整型40 ~ 4294967295long长整型4/8取决于平台unsigned long无符号长整型4/8取决于平台long long长长整型8-9223372036854775808 ~ 9223372036854775807unsigned long long无符号长长整型80 ~ 18446744073709551615float单精度浮点型4约 ±3.4e-38 ~ ±3.4e38double双精度浮点型8约 ±1.7e-308 ~ ±1.7e308long double长双精度浮点型8/12/16精度更高void空类型0无值_Bool布尔型1true / false在C语言中内置类型也分两种一种是无符号的一种是有符号的他们的区别我们可以简单了解无符号类型是正数有符号有正数有负数。使用场景当我们要存储的数据一定是正数且数值超过了当前有符号类型的上限但数值又不大改用更大的类型会浪费空间时就可以使用无符号类型。原因是有符号类型需要用最高位作为符号位来标记正负占用 1 位空间而无符号类型没有符号位所有位都用来存数值所以无符号类型的正数范围更大。我们看表格的时候会发现有的类型的大小是浮动的这是因为这些类型会跟着系统的不同和编译器的不同产生变化有的时候int和unsigned int存不下时有的人会用long但是有可能int和long在当前编译器的大小是一样的C语言为了让大家避免这种情况就给出一个关键字sizeof下面就让我们一起了解sizeofsizeofsizeof 是一个关键字也是操作符专门是用来计算sizeof的操作符数的类型长度的单位是字节。sizeof 操作符的操作数可以是类型也可是变量或者表达式.sizeof( 类型 )sizeof 表达式#includestdio.hintmain(){// 基本类型大小printf(char : %zu 字节\n,sizeof(char));printf(short : %zu 字节\n,sizeof(short));printf(int : %zu 字节\n,sizeof(int));printf(long : %zu 字节\n,sizeof(long));printf(long long : %zu 字节\n,sizeof(longlong));printf(float : %zu 字节\n,sizeof(float));printf(double : %zu 字节\n,sizeof(double));// 字符串数组含 \0printf(sizeof(\abc\) %zu\n,sizeof(abc));// 对表达式求 sizeof 不会执行它inta5;size_tssizeof(a);// a 不会自增printf(a %d, sizeof(a) %zu\n,a,s);return0;}无符号同理数据类型取值范围上面我们了解了C语言的数据类型的种类无符号和有符号的区别也通过表格的方式展示了各种类型的取值范围但是如果让我们自己手动输入这些取值范围的太麻烦了有的时候也容易输错那么C语言提供了对应解决方法了吗提供了对应的常量整数类型在limits.h这个头文件里面浮点类型在float.h头文件里面宏含义SCHAR_MINsigned char 的最小值SCHAR_MAXsigned char 的最大值SHRT_MINshort 的最小值SHRT_MAXshort 的最大值INT_MINint 的最小值INT_MAXint 的最大值LONG_MINlong 的最小值LONG_MAXlong 的最大值LLONG_MINlong long 的最小值LLONG_MAXlong long 的最大值UCHAR_MAXunsigned char 的最大值USHRT_MAXunsigned short 的最大值UINT_MAXunsigned int 的最大值ULONG_MAXunsigned long 的最大值ULLONG_MAXunsigned long long 的最大值变量的创建data_type name; | | | | 数据类型 变量名变量是程序中用来存放数据的容器使用前必须先创建定义。创建一个变量需要三要素类型 名字 初始值初始值可省略。变量名的命名规则只能由字母、数字、下划线组成不能以数字开头不能和 C 语言关键字重名如 int、for 等严格区分大小写age 和 Age 是两个不同的变量命名最好见名知意比如用 count 而不是 a。#includestdio.hintmain(){// 定义类型 名字未初始化intage;doubleheight;charsex;// 定义并初始化类型 名字 初值intcount10;doublepi3.14;chargradeA;// 先定义后赋值age18;height1.75;sexM;printf(age %d\n,age);printf(pi %.2f\n,pi);printf(grade %c\n,grade);return0;}全局变量和局部变量根据变量定义的位置C 语言把变量分为局部变量和全局变量。局部变量定义在函数内部花括号内的变量。全局变量定义在所有函数之外的变量。局部变量全局变量定义位置函数内部代码块内所有函数外部作用域所在代码块从定义到程序结束生命周期函数执行期间函数结束自动销毁整个程序运行期间默认初值不确定垃圾值0使用场景临时数据多函数共享数据在同时使用全局变量和局部变量我们要注意一点就是如果全局变量和局部变量的变量一致时那么它是会用全局变量的值函数局部变量的值呢#includestdio.hintn1000;intmain(){intn10;printf(%d\n,n);return0;}当程序运行后我们会发现是运行的局部变量所以我们可以得出一个结论当全局变量和局部变量的变量名相同时优先使用局部变量注意局部变量只在自己所在代码块中生效。看下面代码他们的输出结果是不一样的就是因为局部变量只在自己所在代码块中生效。//代码A#includestdio.hintmain(){intn10;{intn1000;printf(%d\n,n);}return0;}// 代码B#includestdio.hintmain(){intn10;{intn1000;}printf(%d\n,n);return0;}本章我们深入了解了 C 语言的内置数据类型认识了有符号和无符号的区别学会了用 sizeof 计算类型的大小知道了通过 limits.h 和 float.h 中的宏获取取值范围也掌握了变量的创建以及全局变量和局部变量的区别。数据类型和变量是 C 语言大厦的砖块打好这个基础下一章我们将一起学习对数据进行加工的工具——操作符。完

相关新闻

医学论文解读:CLIP-KOA: Enhancing Knee Osteoarthritis Diagnosis with Multi-Modal Learning and Symmetry-Awar

医学论文解读:CLIP-KOA: Enhancing Knee Osteoarthritis Diagnosis with Multi-Modal Learning and Symmetry-Awar

会议:MICCAI年份:2025英文名字:CLIP-KOA: Enhancing Knee Osteoarthritis Diagnosis with Multi-Modal Learning and Symmetry-Aware Loss Functions中文译为:CLIP-KOA:基于多模态学习与对称性感知损失的膝骨关节炎诊断…

2026/10/24 0:24:53 阅读更多 →
Unity ECS框架选型:Entitas与DOTS深度对比与实战决策指南

Unity ECS框架选型:Entitas与DOTS深度对比与实战决策指南

1. 项目概述:ECS框架选择的十字路口 在Unity游戏开发的世界里,性能优化和代码架构是永恒的话题。最近几年,Entity Component System(ECS)架构从一种前沿理念,逐渐变成了应对复杂游戏逻辑和高性能需求项目的…

2026/10/26 18:40:15 阅读更多 →
09-基于功能分支的工作流

09-基于功能分支的工作流

前面介绍了一种最基本的团队工作模型,所有人都工作在 master 上,写完了的 commit 可以通过 push 来发送到中央仓库,并且可以使用 pull 来获取到别人的最新 commits。这种工作模型解决了团队合作最基本的问题:多人并行开发和版本管…

2026/10/21 3:46:44 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/28 23:48:14 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/28 7:28:00 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/28 9:02:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/28 22:10:30 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/28 9:00:54 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/28 7:29:02 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 16:58:40 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 9:01:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 19:25:09 阅读更多 →