尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
3.【C语言】内置数据类型
目录1.补: 计算机的比特单位2.描述整数的整型Linux系统中各个整型的别名各种长度的整型数据3.描述小数的浮点型补浮点型小数的两种表示方法补float的细节4.描述字符(如abc……)的字符类型5. 描述真假的布尔类型6.数据类型的取值范围7.如何使用8.各种数据类型占用的空间大小为什么int和long的长度结果都是4?10.思考题: 存QQ号码用什么数据类型?1.补: 计算机的比特单位1byte (字节) 8bit1个bit (二进制中的0或1,1个0为1bit,1个1也为1bit)1kb (千字节) 1024byte1mb (兆字节) 1024kb1gb (千兆字节) 1024mb1tb (太字节) 1024gb……2.描述整数的整型short 短整型int 整型long long 长长整型(C99标准引入)Linux系统中各个整型的别名Linux一般配的是glibc库用户层标准C 底层实现glibc内部 ───────────────────────────────────────────── int8_t ────► __int8_t ────► signed char int16_t ────► __int16_t ────► short int32_t ────► __int32_t ────► int int64_t ────► __int64_t ────► long(64位机器) / long long(32位机器) uint8_t ────► __uint8_t ────► unsigned char uint16_t ────► __uint16_t ────► unsigned short uint32_t ────► __uint32_t ────► unsigned int uint64_t ────► __uint64_t ────► unsigned long(64位机器) / unsigned long long(32位机器)类型中的数字(8、16、32、64)表示占用的位数各种长度的整型数据2025.11.18补充:AMD的参考手册AMD64 Architecture Programmer’s Manual Volume 1: Application Programming很好说明了各种长度的整型数据3.描述小数的浮点型float单精度浮点型(为32位有效数字6-7位)double双精度浮点型(为64位有效数字15-16位)long double长精度浮点类型(C99引入)补浮点型小数的两种表示方法113.3(正常表示),4.0e34.0*10的3次方,为科学计数法补float的细节float a0.5;float a0.5f;float a0.5F;float和duoble程序分配的内存不一样(见第三篇sizeofhttp://t.csdnimg.cn/ciFsK)4.描述字符(如abc……)的字符类型char5. 描述真假的布尔类型C99标准才引入布尔类型,布尔类型的变量如果为0,就表示假,如果非0就表示真// // stdbool.h // // Copyright (c) Microsoft Corporation. All rights reserved. // // The C Standard Library stdbool.h header. // #ifndef _STDBOOL #define _STDBOOL #define __bool_true_false_are_defined 1 #ifndef __cplusplus #define bool _Bool #define false 0 #define true 1 #endif /* __cplusplus */ #endif /* _STDBOOL */#include stdbool.h #define true 1//VS默认 #define false 0 int main() { _Bool atrue;//布尔类型的变量只有两种取值true false //也可写成 bool atrue; return 0; }6.数据类型的取值范围limits.h 文件中说明了整型类型的取值范围float.h 这个头文件中说明浮点型类型的取值范围SCHAR_MIN SCHAR_MAX signed char 的最小值和最大值SHRT_MIN SHRT_MAX short 的最小值和最大值INT_MIN INT_MAX int 的最小值和最大值LONG_MIN LONG_MAX long 的最小值和最大值LLONG_MIN LLONG_MAX long long 的最小值和最大值UCHAR_MAX unsigned char 的最大值。USHRT_MAX unsigned short 的最大值。UINT_MAX unsigned int 的最大值。ULONG_MAX unsigned long 的最大值。ULLONG_MAX unsigned long long 的最大值7.如何使用int main() { char ch a; //将a存储到ch变量中,这个变量可以自己定义 int a 10; short b 50;//也可以写为 short int b50 long c 60; long long d 90; return 0; }#include stdio.h int main() { printf(%d\n, 100); printf(100); //上述语句均可打印100但含义不同一个视为整型一个视为字符 return 0; }8.各种数据类型占用的空间大小#include stdio.h #include stdbool.h int main() { printf(%d\n, sizeof(char)); printf(%d\n, sizeof(short)); printf(%d\n, sizeof(int)); printf(%d\n, sizeof(long)); printf(%d\n, sizeof(long long)); printf(%d\n, sizeof(float)); printf(%d\n, sizeof(double)); printf(%d\n, sizeof(bool)); return 0; }运行结果:调用sizeof操作符(注意: 不是函数,因此sizeof(a)写成sizeof a也可以,如果为变量或表达式,括号可以省略; 如果是数量类型括号不可以省略)后,结果的数字代表不同的数据类型的长度,单位是字节(byte),结论: sizeof可以测定变量、数据类型、表达式占用的空间大小注意sizeof的表达式不会真实计算#include stdio.h int main() { short a 3; int b 5; printf(%d\n, sizeof(a b 1)); printf(%d, a); return 0; }运行结果:b的类型是int,a的类型是short,ab1,int的类型会被强制转为short类型为什么int和long的长度结果都是4?C语言标准规定sizeof(long)≥sizeof(int)为什么要规定int、long等数据类型不同数据类型占空间不同,为了提高空间利用率10.思考题: 存QQ号码用什么数据类型?QQ是腾讯公司开发的即时通讯工具,QQ号码在用户注册时由系统随机选择,只用0~9的数字,不使用字母和其它特殊字符QQ号码用于标识用户的唯一性,其次QQ号码没有负数,而且也不是浮点数所以这里不考虑可正可负的char、short、int、long、long long类型,也不考虑浮点数float、unsigned float、double、unsigned double早期的QQ号码非常短,据QQ号为10001的是马化腾,QQ创始人马化腾的QQ号码是10001显然5位的QQ号码是无法使用char、unsigned short存储的,那unsigned int可以做到吗?答: unsigned int表示范围是0~429496725,最高可达9位,但现在的QQ号已经不止9位了,有10位的,,读者可以自己到QQ里面看看自己的好友QQ号码位数,11位有没有我不确定那unsigned long long可以做到吗?答: unsigned long long范围是0~18446744073709551615,最高可达到20位,根据多家权威机构2026年的最新估算,目前地球人口约为82亿到83亿人,假设这些人都有自己的QQ号,且假设QQ号是连续分配的,那QQ号码最长才为10位,所以20位绰绰有余当然,存储QQ号码的类型不是范围越宽越好,每个QQ号码都在QQ服务器都会占用空间,以免在海量用户下浪费存储空间以上是我的理论猜测,具体用什么类型存储QQ号码,要问QQ内部员工,读者可看一位自称是前腾讯 PCG 员工在知乎发布的回答存QQ号码究竟该用int类型还是string类型 - rui0608的回答 - 知乎是从业务视角看待的,考虑到很多因素,比如自增号码容易被推测用户数量、精度损失......由于知乎回答禁止转载,我就不摘抄到本文了
RELATED

相关推荐

txt转xml小工具:字段映射、批处理与XSD校验避坑

txt转xml小工具:字段映射、批处理与XSD校验避坑

简介:这是一个将 txt 纯文本数据转换为结构化 XML 的小型实用工具,面向需要做数据整理、格式迁移与跨系统交换的编程学习者和开发者,也适合作为理解文本解析与 XML 组织的入门案例。压缩包共 37 个文件,约 65KB,以 12 …

📅 2026/10/26 1:14:04
深度强化学习驱动电力系统紧急控制:MDP建模与PPO训练实战

深度强化学习驱动电力系统紧急控制:MDP建模与PPO训练实战

简介:面向电力系统控制与深度强化学习交叉领域的研究人员和工程师,这份资料围绕自适应紧急控制中的DRL应用展开,针对传统离线控制在电网不确定性与动态变化下适应性不足的问题,给出基于DQN的完整实现流程。内容涵盖RLGC开源平台原…

📅 2026/10/26 1:14:04
目标检测与跟踪算法选型指南:从文献综述到落地实践

目标检测与跟踪算法选型指南:从文献综述到落地实践

简介:一份聚焦智能视频监控与运动目标检测跟踪主题的文献综述,面向计算机视觉、图像处理及安防监控领域的初学者和研究人员。文档系统梳理了视频监控从模拟、数字化到网络化的发展历程,重点阐述智能视频分析模块在预警和处理异常中的核心作用…

📅 2026/10/26 1:14:04
MORE NEWS

更多资讯

📰

蔚来后端一面+二面:16道高频真题(附答案PDF模板)

以上是蔚来后端岗位的真实面经,一面主要考察候选人的基础原理,二面考察场景设计能力,总的来说,我认为难度适中,这在我们真实工作中也是会经常会遇到的问题,下面我就上面的面试题,我做下自己的理…

📰

功能线程化:把一帧拆成流水线——任务图、依赖与工作窃取的引擎实现原理

玩家投诉 #2231: "你们这游戏帧率显示 144,但我开镜的手感像在水里。" 技术回复:"帧率正常,无异常。" 两边都对。 因为这个玩家感受到的不是帧率,而是流水线的长度—— 他按下右键的那一刻,这个信号要排队走过四道工位,才能变成屏幕上的光。 帧率决…

📰

Unity GUID 的身份模型:资源引用三元组、冲突成因与工程治理

一、事故复盘:全场景变粉红 1.1 现象 某 FPS 项目,版本上线前三天。策划打开主场景,愣住了:地图上所有墙面材质都变成了 Unity 默认的粉红色(Missing Material),几十把枪的模型变成了灰白方块。 排查结论只有一行字: 一个外包同学,把"整个工程文件夹"打包…

📰

数据竞争:共享状态的正确处理方式——内存序、happens-before 与所有权模型

Bug #4471 标题:角色偶发变成一条拉到地平线的面条 复现步骤:不明 出现频率:约 2000 局一次 平台:仅 Android 真机,PC 编辑器无法复现 处理人:已转交三个人,均标记"无法复现",挂起 47 天 这类 bug 有个共同的名字。它不叫"偶现",不叫"玄学&q…

📰

【Linux网络】会话管理session与Cookie

文章目录一、Cookie 介绍1.1 version1 纯Cookie1.2 version2 加入session机制一、Cookie 介绍 当我们登录某个网页之后,隔一段时间再次点开这个网页,会发现已经不需要再次登录了。为什么?毕竟 HTTP 协议本身是无状态、无连接的(每…

📰

【AI产品经理实战】Day 40|Cookie、HTTPS 到 API:调通第一次大模型对话

| 进度条:学习第 41-42 天(42/191)|当前完成度:约 33% |📎 今日速览:主学 HTTP 无状态与 Cookie、HTTPS 加密,再从 API 概念到申请 DeepSeek key、用 ChatBox AI 和 VS Code 调通大模…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬