news 2026/7/23 5:46:15

C语言基础学习(数据类型)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言基础学习(数据类型)

C编程语言

  1. 执行效率高
  2. 可以控制操作硬件
  3. 资源开销小
  4. 跨平台可移植性强 行业基础

C语言学习内容:

  1. 基本数据类型表达式及运算符
  2. 常用输入输出函数
  3. 流程控制(分支结构.循环结构)
  4. 函数
  5. 数组
  6. 指针
  7. 构造数据类型
  8. 内存管理 位运算
  9. 程序调试方法

C语言学前储备知识

  1. 计算机如何执行C语言程序
  2. 计算机基本组成部分:

    运算器 控制器 存储器 输入设备 输出设备

    运算器+控制器===》CPU (GPU/NPU)

    存储器:

    内存:掉电数据丢失、空间小、读写效率高、价格昂贵

    硬盘:掉电数据不丢失、空间大、读写效率低

    cache:高速缓存设备

    寄存器

  3. 计算机中数据的单位
  4. bit 位 0/1

    byte 字节(计算机内存存储单位) 8bits=1 byte

    kb 1024bytes=1kb

    mb 1024kb=1mb

    gb 1024mb=1gb

    tb 1024gb=1tb

  5. 进制转换
  6. 二进制:0 1

    八进制:0 1 2 3 4 5 6 7

    十进制:0 1 2 3 4 5 6 7 8 9

    十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f

    二进制转换成八进制、十进制、十六进制:

    规则: 对应位*对应位的权值,累加求和

十进制转二进制、八进制、十六进制:

短除法:要转数据/进制数取得的余数逆序

二进制转十六进制、八进制

4个二进制位 转换1个十六进制位

3个二进制位 转换1个八进制位

按照8421编码方式转换

  • 基本数据类型、表达式及 运算符
  1. C语言中的数据类型

基本数据类型

整数类型*

字符类型*

浮点类型*

缺省类型(空类型void)

函数的形参和返回值:不传递函数、不返回数据

指针:void*--》万能指针

波尔类型(c++)

逻辑类型

内存中:1字节

true/false(1/0)

#include<stdbool.h>

构造数据类型

指针类型

  1. 基本数据类型

整数类型:

1)整数类型分类:

有符号整形:可以表示正数,也可以表示负数

最高位:符号位 0:正数 1:负数

其他位:数据位

无符号整形:只能表示正数(>=0)

64位ubuntu系统下:

short:短整形

内存中:2字节

unsigned short: 无符号短整形

最大值:1111 1111 1111 1111---》2^16-1=65535

最小值:0000 0000 0000 0000---》0

short(signed short): 有符号短整形

最大值:0111 1111 1111 1111--》2^15-1=32767

最小值:1000 0000 0000 0000--》-32768

int 整形

内存:4字节

unsigned int:无符号整形

最大值:1111 1111 1111 1111 1111 1111 1111 1111--》2^32-1=42亿+

最小值:0000 0000 0000 0000 0000 0000 0000 0000--》0

int(signed int):有符号整形

最大值:0111 1111 1111 1111 1111 1111 1111 1111--》2^31-1 21亿+

最小值:1000 0000 0000 0000 0000 0000 0000 0000--》-2^31 -21亿

long 长整形

内存:8字节

unsigned long(int):无符号长整形

最大值:2^64-1

最小值:0

long(signed long int):有符号长整型

最大值:2^63-1

最小值:-2^63

关键字:sizeof(数据类型)--》返回一个结果:整形数据

获取某种数据类型在内存中所占的字节数

printf:向终端打印数据工具:

2)整形数据在内存中的存储方式:

无符号整形:原码(补码=原码)

有符号整形:

最高位:符号位--》0:正数 1:负数

其他位:数据位

正数:原码方式储存

负数:补码方式储存

补码

补码=反码+1

3)整形数据的溢出

unsigned short 最大值+1?

最大值+1--》最小值

最小值-1--》最大值

3.字符类型

char 字符类型

内存:1字节

‘a’ ‘b’ ‘$’ ‘#’ ‘?’ ‘\n’

unsigned char:无符号字符形

最大值:1111 1111----》2^8-1=255

最小值:0000 0000----》0

signed char: 有符号字符形

最大值:0111 1111---》2^7-1=127

最小值:1000 0000---》-2^7=-128

ASCII:转换标准:字符和整形数据之间的转换标准

4.浮点类型

用来表示小数的数据类型。

单精度浮点型:float

精度范围:6-8位

内存占的字节数:4

IEEE标准规定,float类型在内存中以符号位(1bit)、指数位(8bits)、尾数位(23bits)的方式存储

尾数位:指数位+补齐尾数位(23)

内存:小数点后+指数位+尾数位

双精度浮点型:double

精度范围:12-16位

内存中占的字节数:8

IEEE标准规定,double类型在内存中符号位(1bit)、指数位(11bits)、尾数位(52bits)方式存储。

1. 0.9 → double 常量,不能二进制精确存储

2. float f = 0.9:double 转 float,精度丢失,得到粗略近似值

3. f == 0.9:f 提升为 double,粗略近似值 vs double 高精度近似值

4. 两个近似值不相等 → 条件不成立 → 打印No!

单精度 %

双精度 %lf

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/23 5:43:35

深入解析Stellaris uDMA控制器:从基础到高级应用实战

1. 项目概述&#xff1a;为什么我们需要uDMA&#xff1f;在嵌入式开发&#xff0c;尤其是基于ARM Cortex-M3这类资源受限的微控制器项目中&#xff0c;我们常常面临一个核心矛盾&#xff1a;CPU的算力是宝贵的&#xff0c;但数据搬运却是频繁且耗时的。想象一下&#xff0c;你的…

作者头像 李华
网站建设 2026/7/23 5:43:14

C++模板进阶:从类型推导到元编程实战

1. 项目概述&#xff1a;从“能用”到“精通”的C模板之路如果你写过一些C代码&#xff0c;用过std::vector<int>或者自己写过简单的template <typename T> T max(T a, T b)&#xff0c;那你已经踏入了模板世界的大门。但很多时候&#xff0c;我们仅仅停留在“知道…

作者头像 李华
网站建设 2026/7/23 5:42:36

WebGL/WebGPU案例合集:解决Unity初始化、Three.js上下文等45个实战问题

这次我们来看一个 WebGL/WebGPU 案例合集项目&#xff0c;这个系列已经更新到第四十五期&#xff0c;主要收集整理了当前前端图形技术领域的实用案例和解决方案。对于从事 Web 3D 开发、数据可视化、游戏开发的前端工程师来说&#xff0c;这样的案例合集能够提供直接可参考的实…

作者头像 李华
网站建设 2026/7/23 5:42:09

AI视觉系统遮挡问题解析与连续性感知优化

1. AI视觉系统的"失忆症"现象解析当目标物体被遮挡时&#xff0c;当前主流AI视觉系统表现出的识别中断问题&#xff0c;本质上暴露了机器学习模型对时空连续性的认知缺陷。这种现象在自动驾驶、安防监控、工业检测等领域尤为明显——监控摄像头前的行人被广告牌遮挡后…

作者头像 李华
网站建设 2026/7/23 5:40:39

C++ Sketch数据结构库:海量数据近似统计的高性能实现

1. 项目概述&#xff1a;为什么我们需要一个C的Sketch数据结构库&#xff1f;在数据洪流的时代&#xff0c;无论是实时监控系统、网络流量分析&#xff0c;还是推荐系统的点击率预估&#xff0c;我们常常面临一个经典困境&#xff1a;数据量太大&#xff0c;内存装不下&#xf…

作者头像 李华
网站建设 2026/7/23 5:39:30

ARM工控机Linux下从CAD图纸到运动加工(一):Qt Demo的CAD导入

EtherCAT总线型运动控制器-ZMC600M ZMC600M系列高性能多轴运动控制器是一款EtherCAT总线立式运动控制器&#xff0c;控制器本身最多支持6-32轴的复杂的控制需求。 ZMC600M是基于“ARM架构纯国产Linux运动控制实时内核MotionRT750 EtherCAT”的总线型运动控制器&#xff0c;打…

作者头像 李华