C语言课程学习calss2
#课堂笔记第二章部分2.1C语言的数据类型2.2标识符常量和变量2.2.2常量2.2.3变量变量名用来标识这块内存实际上代表了一个存储地址。变量如何定义要掌握2.3.整型数据类型2.3.1 整型数据的分类不用记基本整型 (int)通常占 4 个字节32 位短整型 (short int)占 2 个字节16 位长整型 (long int)在 VC6 环境下也是 4 个字节不同编译器可能不同其中1 字节 8 位二进制。所以一共能表示的组合数是2的8次方256就是0-255最大是2552.3.2 整型常量的表示方法十进制直接写数字如123,-456,0八进制以0开头Octa-八如0123注意0100表示八进制的 64十六进制以0x或0X开头如0x12,-0xFF后缀l表示长整型u表示无符号整型比如#include stdio.hvoid main(){int a,b;a0100; // 八进制数实际是十进制的 64ba20; // 64 20 84printf(%d\n,a); // 输出 64printf(%d\n,b); // 输出 84} 这里的重点是前导 0 表示八进制所以0100是1*8*2642.3.3所有整型变量有符号整数在内存中都是以二进制补码形式存储的。补码的好处是正负数都能用同一套规则进行加减运算硬件实现更简单。 补码表示示例10的补码00000000 00000000 00000000 00001010-10的补码11111111 11111111 11111111 11110110这是通过“取反再加一”得到的 整型变量的分类基本类型int有符号signed int无符号unsigned int短整型short int有符号signed short int无符号unsigned short int长整型long int有符号signed long int无符号unsigned long int 注意如果不写signed或unsigned默认是有符号。 其他注意点只有整型数据能加signed或unsigned修饰浮点型不能。输出无符号整型时要用%u格式说明符。unsigned short p 50; printf(%u\n, p); // 输出 502.4实型数据浮点型重点就是你提到的两个方面存储空间和有效数字。 存储空间不同类型的浮点数占用的字节数不同决定了它们能表示的范围和精度float单精度4 字节约 6–7 位有效数字double双精度8 字节约 15–16 位有效数字long double长双精度在不同编译器里大小不同Turbo C 是 16 字节VC6 是 8 字节 存储空间越大能表示的数值范围越广精度也越高。 有效数字 浮点常量的表示浮点数是用科学计数法的二进制形式IEEE 754 标准存储的。有效数字位数有限超过的部分会被舍去导致舍入误差。例如float只能保证 7 位有效数字所以1234.1415926会被存成1234.141602。浮点数的存储方式C 语言中实数以规范化指数形式存储小数点前为 0小数点后第一位必须非零。例如 3.141590.314159×101小数部分位数越多 → 精度越高十进制小数形式必须带小数点如.123,123.0,0.0指数形式如1.234e3表示 1.234×103E前必须有数E后必须是整数可正可负不合法示例e3,1e2.3,.e3指数部分位数越多 → 表示范围越大2.5.字符型数据2.5.1字符常量 字符型数据的存储字符占 1 字节存储的是它的ASCII 码值整数形式。ASCII 字符集包括字母A–Z, a–z数字0–9特殊符号如! # ( ) *等空格类空格、制表符、换行符等不可显示字符如\0(空字符)、\a(警告)、\b(退格)、\r(回车) 转义字符转义字符以反斜杠\开头用于表示特殊符号或控制符\t→ 跳到下一个制表位\b→ 删除前一个字符\r→ 回到本行开头\f→ 跳到下一页开头\0→ 字符串结束标志\\→ 输出一个反斜杠\→ 输出单引号\→ 输出双引号\ddd→ 八进制表示的字符\xhh→ 十六进制表示的字符 字符常量与字符串常量字符常量用单引号 括起来的一个字符。是常量哦如a,1,X注意a ≠ A它们的 ASCII 值不同。转义字符也能作为字符常量比如\n。字符串常量用双引号 括起来的一串字符。如This is a string,5433, 空格字符串,空串例子china\b\n101\t\\实际由10 个字符组成包括转义符。2.5.2字符变量 定义字符型变量用char定义占用1 个字节8 位。每个字符实际上存储的是它的ASCII 码值。定义方式的例子注意单引号char c A; // 存储字符 A char c 65; // 存储整数 65对应字符 A 字符与整数的关系字符和整数在一定条件下可以互通a实际上就是整数 97ASCII 码。b就是整数 98。所以下图正常来说应该是char c1‘ac2’b‘但是用数字也可以char c1 97, c2 98; printf(%c %c\n, c1, c2); // 输出 a b printf(%d %d\n, c1, c2); // 输出 97 98 格式化输出%c→ 按字符形式输出。character%d→ 按整数形式输出显示 ASCII 码值。decimal十进制 举例63空格char c ?; printf(%d %c\n, c, c); // 输出 63 ? 字符与整数的区别其他2.6.运算符及表达式①概况 运算符的分类算术运算符 - * / %在 C 语言中/的运算结果由操作数的类型决定不是固定的整除 / 实数除核心规则就两条1. 两个操作数都是整数int/long 等→整除2. 操作数中至少有一个是浮点数float/double→实数除基本的加减乘除和取余。注意字符 1存储的是符号1的 ASCII 码十进制 49二进制 00110001。整数 1存储的是数值 1 的补码二进制 00000001占 4 字节。所以1和1是完全不同的概念。 字符运算与规律字符可以参与算术运算因为本质上它就是整数。规律小写字母减去 32 就是对应的大写字母。a(97) →A(65)b(98) →B(66)关系运算符 ! 用来比较大小或是否相等结果是布尔值真/假。逻辑运算符! ||逻辑非、逻辑与、逻辑或。位运算符 ~ | ^ 对二进制位进行操作比如左移、右移、按位与、按位或、按位异或、按位取反。赋值运算符以及扩展赋值如,-,*,/,%。条件运算符三目运算符?:格式条件 ? 表达式1 : 表达式2。逗号运算符,多个表达式顺序执行整个表达式的值是最后一个。指针运算符* *表示取值解引用表示取地址。求字节数运算符sizeof返回某个类型或变量占用的字节数。强制类型转换运算符(类型)② 表达式的类型③算术运算符④⚠️重点自增、自减运算符 自增、自减运算符把一个值转换为指定类型。成员运算符-用于结构体指针访问成员。下标运算符[ ]用于数组元素访问。其他函数调用运算符()。算术表达式如23*5关系表达式如x y逻辑表达式如x0 y0赋值表达式如a 5逗号表达式如a3, b4, c8值是最后一个表达式的结果基本运算符加法单目时表示正号-减法单目时表示负号*乘法/除法%取余只能用于整数整数除法的特点两个整数相除结果仍是整数小数部分会被舍弃。例如5 / 3 1如果有负数舍入方向可能不同在某些系统中-5 / 3 -1在另一些系统中-5 / 3 -2。VC 采用“向零取整”的规则5 / 3 1-5 / 3 -1作用让变量的值加 1 或减 1。写法i/i--i在前所以先使用变量i再让它加减1。i/--i先让变量i加减1再使用它。一些说明在 C 的优先级表格中自增和自减--的优先级确实比加、减、乘、除都要高例题如a3则表达式-a的值为多少?执行后 a的值为多少?1单目运算符只作用于一个操作数。例如a,--a,-a,!a双目运算符作用于两个操作数。例如ab,a-b,a*b,a/b三目运算符作用于三个操作数。例如条件运算符a ? b : c2只能用于整型变量包括char不能用于浮点型或常量或表达式。错误示例如图右结合性表达式从右往左结合。例如-a等价于-(a)。例题1初始值a 2,b 9①a b / a②a (b / a) 区别这两个1. 表达式一a b / a在这个式子中自增都在变量后面后置自增。初值a 2,b 9。优先级b和a优先级最高但因为是后置它们会“先参与当前运算这行运行完再加 1”。计算步骤取b的当前值9。取a的当前值2。进行除法9 / 2 4在 C 语言中整数除以整数结果还是整数小数部分被舍弃。进行加法a 4 2 4 6$。结果6。执行后这行算完后a变成 3b变成 10。2. 表达式二a (b / a)在这个式子中自增都在变量前面前置自增且有括号。初值a 2,b 9。优先级括号里的b和a优先级最高且因为是前置它们必须“先加 1再拿新值参与运算”。计算步骤执行bb从 9 变成10。执行aa从 2 变成3。执行括号内的除法$10 / 3 3$同样舍弃小数。执行最后的加法因为一开始的a也是运算的一部分呀b和a先执行之后再参与整行的运算所以此时最前面的a已经变成3了所以是 3 3 6$。结果6。例2假设a是 3-a-a情况 A后置自增-a如a3则表达式-a的值为多少?执行后 a的值为多少? -3,4因为优先级更高它会先和a结合。逻辑相当于-(a)。执行取出a的值先做负号运算得到-3然后a再自增变成 4。情况 B前置自增-a逻辑也是从右往左结合相当于-(a)。执行a先自增变成 4然后再取负号结果是-4。⑤强制float转int⑥逗号运算符知识点逗号表达式的一般形式为表达式1, 表达式2, ... 表达式n。执行顺序从左到右依次计算各个表达式的值。最终取值整个逗号表达式的值取最后一个表达式即表达式 n的值。例题1x(a4%3, a1, a*10)括号内部运算执行a4%34除以3取余数a变成1。执行a1计算 112。注意这里只是计算并没有赋值给 a所以a依然是 1。执行a*10计算 1*10 10。最终赋值括号里最后一部分的值是10。由于整个括号被赋给了x即x(...)所以x 10。例题2首先括号有优先级所以先算a4*5a*2依次执行得到a2040但是a并没有变成40哦没有赋值给a由于逗号表达式的值取最后一个值所以这个取40其次是40a6这一块儿因为a还是20所以逗号表达式最终结果是26⑦关于赋值语句

相关新闻

【linux进程信号(二)】信号的保存、处理和捕捉,以及可重入函数、volatile关键字、SIGCHLD信号知识剖析

【linux进程信号(二)】信号的保存、处理和捕捉,以及可重入函数、volatile关键字、SIGCHLD信号知识剖析

🎬 个人主页:HABuo 📖 个人专栏:《C系列》《Linux系列》《数据结构》《C语言系列》《Python系列》《YOLO系列》 ⛰️ 如果再也不能见到你,祝你早安,午安,晚安 目录 📚一、信号其他…

2026/7/5 6:12:54 阅读更多 →
查找一个有向网络的头节点和尾节点

查找一个有向网络的头节点和尾节点

一、题目描述给定一个有向图,图中可能包含有环,有向边用两个节点表示。第一个整数表示起始节点,第二个整数表示终止节点,如0 1表示存在从0到1的路径。每个节点用正整数表示,求这个数据的头节点与尾节点,题目…

2026/7/7 1:24:00 阅读更多 →
曾经神器又回来了?最新开源修复版,一键轻松OCR图片提取文字,支持翻译,完全免费 天若OCRV6.0

曾经神器又回来了?最新开源修复版,一键轻松OCR图片提取文字,支持翻译,完全免费 天若OCRV6.0

Hello,大家好! 今天给大家分享一款最新电脑OCR神器——天若OCR开源修复版本, 软件已经整理在文末,有需要的朋友记得获取保存哦~ 链接:https://pan.quark.cn/s/e4b192bde647 一、软件打开方式 这款工具为…

2026/7/6 21:19:58 阅读更多 →

最新新闻

Day 003:Prompt 不是玄学,写好工业级 Agent 指令的稳定框架

Day 003:Prompt 不是玄学,写好工业级 Agent 指令的稳定框架

系列: 100 天系统学习 AI Agent 开发 当前阶段: 01 - Agent 基础与环境搭建 今日目标: 彻底搞懂 Agent System Prompt 的核心骨架(角色、目标、边界、工具规则、输出格式、异常处理)。 标签: AI Agent 大模…

2026/7/7 7:01:54 阅读更多 →
LED关键参数实战选型指南:5个核心指标决定照明质量与寿命

LED关键参数实战选型指南:5个核心指标决定照明质量与寿命

LED关键参数实战选型指南:5个核心指标决定照明质量与寿命1. 光通量与发光效率:照明效果的经济学光通量(单位:流明,lm)是衡量LED光源总发光量的基础指标。在商业照明项目中,我们曾遇到一个典型案…

2026/7/7 7:01:54 阅读更多 →
QQ音乐解析技术深度解析:逆向工程与API架构设计

QQ音乐解析技术深度解析:逆向工程与API架构设计

QQ音乐解析技术深度解析:逆向工程与API架构设计 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic 技术挑战与行业痛点 在数字音乐版权保护日益严格的今天,音乐平台API接口的封闭性给开发…

2026/7/7 6:55:51 阅读更多 →
06 Lottery Ticket Hypothesis 详解:稀疏子网络为何能中奖?

06 Lottery Ticket Hypothesis 详解:稀疏子网络为何能中奖?

一、论文基本信息 论文名称:The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks 作者:Jonathan Frankle, Michael Carbin 会议:ICLR 2019 论文链接:https://openreview.net/forum?idrJl-b3RcF7 arXiv 链…

2026/7/7 6:53:51 阅读更多 →
腾讯云TBDS面向AI时代的多模态智算平台,助力企业AI转型

腾讯云TBDS面向AI时代的多模态智算平台,助力企业AI转型

// TBDS 多模智算平台系列 //随着多模态大模型快速演进,企业在AI基础设施层面面临异构算力管理复杂、数据处理链路冗长、训练推理资源割裂浪费等核心挑战。腾讯云TBDS基于Ray构建多模态数据智算平台,支持GPU/CPU等异构资源统一调度,把多模数…

2026/7/7 6:53:51 阅读更多 →
2026年想挑正宗农家土榨花生油?这几个TOP技巧你掌握了吗?

2026年想挑正宗农家土榨花生油?这几个TOP技巧你掌握了吗?

中秋佳节将至,给员工选份贴心福利成了企业采购的头等大事。很多企业会考虑选花生油作为福利,但是现在市场上花生油品牌众多,想挑到正宗农家土榨花生油可不容易。今天我就以马山县周鹿镇蔡家花生油厂为例,跟大家好好聊聊挑选正宗农…

2026/7/7 6:53:51 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻