当前位置: 首页 > news >正文

C语言基础(一)

一、代码在计算机中的运行
计算机的存储可分为内存和外存,内存空间相对较小(16GB、32GB),读写速度快,掉电丢失数据;外存相对较大,读写速度慢,掉电不丢失数据。
在编写好代码后保存退出并执行gcc命令会产生一个a.out文件,可执行程序(a.out)在 计算机的外存(ssd, flash)中存储,执行./a.out ,计算机会把a.out 中的内容(代码+数据) 加载到内存中,最后cpu 就会从内存中读出 代码+数据, 对数据进行相关操作。

二、计算机的数据单位的关系

1TB=1024GB
1GB=1024MB
1MB=1024KB
1KB=1024B
一个字节(byte)是八个比特位(bit),比特位有0/1两种状态,接下来引入进制。

二进制:逢二进一
十进制:逢十进一
八进制:逢八进一
十六进制:逢十六进一

三、进制转换

十进制转二进制: 对10进制数 一直除2 ,直到商为0 。并且记录余数,逆序组成的序列就是 对应的二进制数

十进制转八进制:对10进制数 一直除8 ,直到商为0 。并且记录余数,逆序组成的序列就是 对应的八进制数
十进制转八进制: 对10进制数 一直除16 ,直到商为0 。并且记录余数,逆序组成的序列就是 对应的十六进制数

二进制转八进制、十六进制的方法:将三个二进制数作为一组,三个二进制数是一个八进制数,2^3=8;同理,将四个二进制数作为一组,四个二进制数是一个十六进制数。

四、C语言关键字

五、基本数据类型 ,运算符,表达式

1.基本数据类型
整型类型
浮点类型
字符类型
缺省类型 void ,函数的返回值,函数参数
布尔类型 bool , <stdbool.h> 1 ture 0 false

2. 构造数据类型(用户自定义类型)
结构体
共用体
枚举

a)整数类型
1.可以分为有符号 和无符号
2. 整数数据在内存都是以补码形式存储的。
如果是正整数的话,补码就是原码本身
如果是负数的话需要计算补码, 1先获得原码(先绝对值,转二进制) ,2对原码取反操作(原码中的0
变1,1变0) 获得反码,3 对反码 +1 操作 。 加入以short 为例, 这个反码是 15bit ,在加上最高位
(符号位) 的1 。总共16bit。

sizeof是一个关键字sizeof(a)sizeof(10),sizeof(int) .获得对应类型的数据在,内存中占用的空间是多少个字节,以64位操作系统来说

b)字符类型
char 有符号 字符 1 byte (8bit) -128 - 127
unsiged char 无符号 1 byte (8bit) 0-255
字符类型的本质,其实是 整数。也就是 字符在存到内存中,存储的是字符对应的编码。
在c语言中char 类型表示单个字符,能够从键盘上输入的字符(大小英文字母,小写字母,标点符号)
一些特殊的控制字符也可以使用char 表示。(转义字符)

c)浮点类型
默认情况,浮点数都是符号。小数 。3.14 5.1231231231
float 单精度 4byte 32bit -3.402823^-38 - 3.402823^38
double 双精度 8byte 64bit -1.797693^-308 - 1.797693^308
IEEE 754 内存储存方式
float 1bit(符号位) + 8bit(指数) +23bit(尾数)
double 1bit(符号位) + 11bit(指数) +52bit(尾数)

3.常量,变量
1.常量:顾名思义,常量就是 在程序运行过程中,不会发生改变的量。 也是有数据类型的,常量可直接使用。
常量可分为整型常量、浮点常量、字符型常量以及字符串常量,其中字符串常量由多个字符组成的一个序列。

2.变量: 在程序运行过程中,可以发生变化的量。 都是有数据类型。变量在使用之前,需要先定义在使用。

变量的定义

数据类型 变量名;

变量名(标识符)的规则
1) 只能字母,数字,下划线。不能数字开头。
2) 变量名不要和系统的 关键字 重名。
3)变量名不要和系统的 函数 重名
4)变量名 见名知意。
3.变量中的值,可以发生变化的原因。 因为在定义变量的时候,系统会给变量开辟内存空间。

4.初始化
含义:在变量内存空间开辟的同时,装入初始值。
1) 变量定义后,如果没有给初值的,变量里就存储了随机值。
2)变量在定义的时候,最好都给初值。

表达式
定义:由一个或多个运算符连接起来的式子 。
特点:
1)表达式一定是有类型
2) 表达式一定是有值

运算符
1)算术运算符 + - * / % ++ –
2)关系运算符 > >= < <= == !=
3)逻辑运算符 && || !
单目: 运算符需要1个操作数
双目: 运算符需要2个操作数
% 运算符 的左右操作数不能是 浮点数
++i , 先加再用 , 浮点数 可以++ 操作
i++ 先用在加, 浮点数 可以-- 操作

混合数据类型运算
1) 如果相同类型的数据进行算符运算, 结果是相同类型
2)如果不同数据类型进行算符运算,就要转换为相同的类型 ,在计算结果 ,隐式转换(自动转换)
会把低精度的数据类型向高精度的数据类型转换
如果相同类型会向内存空间占用大的转换
会把有符号 -》 无符号 转换 short -> unsigned short
char ,short --> int 必转
单精度的浮点 -》 双精度浮点转换 必转

doubleret=0inta=5;ret=(double)a/2;// 对5 进行强制类型转换,转换为double类型。强制类型转换 不会对变量本身,进行修改修改

赋值运算符

=//赋值运算符 ,双目运算符 。+=-=*=/=

1) 左值 ,可以放在赋值运算符的左侧,只能 变量,不能是常量,表达式(有值的,常量)。
右值 ,可以放在赋值运算符的右侧。可以是,变量,常量,表达式。
3) 在赋值运算符左右两侧 数据类型 (基本数据类型)不一致的,会按如下方式处理:
如果把浮点数 给整形数据赋值,则丢弃小数部分。
如果把整形数据 给赋值浮点数,扩展小数位。
如果左右两边空间大小一致,则完成内存空间的拷贝。

unsignedintnum=0;num=-100;// -100 以补码存储 ,num 是无符号的,16bit 都当数据为,值很大4294967196printf("num %u\n",num);//如果是内存空间占用小,存到内存空间大 。如果是正数, 高位补 0 。 如果是负值,高位补1 。char -》short//如果把占用内存空间大的,向内存空间小的存储 。丢弃高位,高位截断。 short -》 char ;
http://www.jsqmd.com/news/698677/

相关文章:

  • UI-TARS桌面版完整指南:3分钟快速上手智能GUI自动化操作
  • CVPR2022 Oral解读:3D检测新SOTA,FocalsConv的PyTorch实现与调参避坑指南
  • FPGA做FFT,选流水线还是突发I/O?Xilinx IP核四种架构的实战选择指南
  • 如何从图表图像中智能提取数据?WebPlotDigitizer给你答案
  • APKMirror安卓客户端:安全高效的APK下载与管理终极指南
  • python csv
  • ESP-IDF离线安装包+Python虚拟环境:打造Windows上最稳定的ESP32开发环境(避坑网络问题)
  • 如何通过Perseus开源补丁解锁《碧蓝航线》全皮肤功能:技术原理与实战指南
  • 告别龟速下载!RedHat 9/CentOS Stream 9 一键切换阿里云、清华等国内Yum源(2024最新)
  • C++26合约迁移紧急预案:Legacy代码零修改接入方案,已验证于千万行金融交易系统(附ASAN+Contract双监控POC)
  • 滴哦小精灵:轻松搞定桌面备忘与快捷启动
  • 布隆过滤器(BloomFilter)
  • ROS导航包老是定位飘?可能是你的tf树没搞对(诊断与修复指南)
  • 避坑指南:在Qt和VS2022中正确引用Halcon C++库,解决‘未定义标识符’和链接错误
  • python sqlite3
  • 2026年专业的食品饮料动态膜再生系统有哪些 - 品牌排行榜
  • 5个核心技巧:用Pixel-Composer节点式编辑打造专业像素艺术特效
  • BilibiliDown:3步解决B站视频下载难题的高效方案
  • 京东e卡回收前的重点!线上线下哪里靠谱? - 圆圆收
  • AlphaPlayer架构深度解析:跨平台透明视频动画引擎的设计哲学与实践
  • Excel文件打不开别慌!手把手教你用Stellar Repair for Excel 6.0.X救回数据(附详细操作步骤)
  • 嵌入式C结构体对齐×大模型权重布局(内存带宽利用率提升3.8倍的底层对齐秘钥)
  • 3个关键问题,让你的苹果触控板在Windows上重获新生
  • VSCode低代码表单插件爆发式迭代(2026 Q1深度评测):从拖拽到TypeScript契约自动生成的跃迁之路
  • 【农业农村部2024数字乡村试点推荐配置】:VSCode+Jupyter+GeoPandas实现地块级遥感影像分析——3天掌握农业AI开发起点
  • 从静态到动态:用sd-webui-animatediff解锁AI视频创作的魔法配方 [特殊字符]
  • AI搞定答辩PPT,百考通AI让你告别熬夜,告别焦虑
  • Teamcenter AWC/RCP 根据流程 节点配置对应节点 需要展示的属性和关系 - 张永全
  • 跪求各位学长学姐用血泪教训推荐几款不坑人的AI论文生成器!
  • 网页内容一键归档:用MarkDownload打造个人知识库