【C 语言】从0基础开始到熟练掌握【详细篇共9部分】(持续更新......当前:1)
目录C语言主要学习内容C语言学前储备知识1.计算机如何执行C语言程序2.计算机中数据的单位3.进制转换初识C语言1.为什么要学C语言/C语言的优势2. 语言标准3.使用C语言的7个步骤一、基本数据类型、表达式及运算符1.C语言中的数据类型2.基本数据类型整型字符型浮点型缺省类型空类型void泊尔类型bool二、常用输入输出函数三、流程控制分支结构、循环结构四、函数五、数组六、指针七、构造数据类型八、内存管理、位运算九、程序调试方法摘要本文从C语言的基础概念入手逐步深入到核心语法和编程实践。首先介绍C语言的学习内容和学前储备知识然后详细讲解基本数据类型、表达式及运算符接着覆盖输入输出函数、流程控制、函数、数组、指针等核心内容最后讨论构造数据类型、内存管理和程序调试方法。每个章节都配有清晰的解释和实用的示例帮助你更好地理解和掌握C语言编程。C语言主要学习内容1.基本数据类型、表达式及运算符2.常用输入输出函数3.流程控制分支结构、循环结构4.函数5.数组6.指针7.构造数据类型8.内存管理、位运算9.程序调试方法C语言学前储备知识1.计算机如何执行C语言程序计算机组成部分运算器、控制器、输入设备、输出设备、电源运算器控制器——CPU (GPU/NPU)储存器内存掉电数据丢失、空间小、价格贵硬盘掉电数据不丢失、空间大、读写效率低cache告诉缓存设备寄存器编译器编译的二进制指令集合存放在硬盘中当执行该二进制程序时该程序通过cpu被加载在内存中cpu通过总线访问内存中的数据并做运算和处理2.计算机中数据的单位bit 位 0/1byte 字节计算机内存储存单位 8bitKb k字节 1024byteMb 1024 KbGb 1024 MbTb 1024 Gb3.进制转换二进制B八进制O十进制D十六进制前缀0x 后缀H二进制、八进制、十六进制转十进制权柄的n次方乘系数相加的总和。十六进制——十进制八进制——十进制 0123——108^0*38^1*28^2*183二进制 ——十进制 1010 1101——102^0*12^1*02^2*12^3*12^4*02^5*12^6*02^7*114832128173先转为十六进制再转十进制173D——0xad——16*1013173二进制转八进制、十进制、十六进制二进制——十六进制 1010 1101——168421码四个为一组一组为一位直接得出0xad二进制——十进制先转为十六进制再转十进制173D——0xad——16*1013173二进制——八进制三个为一组一组为一位十进制转其他进制短除法当然在C程序中既可以使用和显示不同进制的数。不同的进制要使用不同的转换说明。以十进制显示数字使用%d;以八进制显示数字使用%o:以十六进制显示数字使用%x。另外要显示各进制数的前缀0、0x和0X必须分别使用%#o、%#x、%#X。例如《C Primer Plus (第六版) 中文版》中示例​​​​​初识C语言1.为什么要学C语言/C语言的优势与python和Java等其他语言相比的优势1.高效性2.可以直接控制操作硬件C语言具有通常是汇编语言才具有的微调控制能力3.资源开销小4.跨平台可移植性强《C Primer Plus (第六版) 中文版》书中提到“由于C语言与UNIX关系密切UNIX系统通常会将C编译器作为软件包的一部分。安装Linux时通常也会安装C编译器。供个人计算机使用的C编译器很多运行各种版本的Windows和 Macintosh(即Mac)的PC都能找到合适的C编译器。因此无论是使用家庭计算机、专业工作站还是大型机都能找到针对特定系统的C编译器。”2. 语言标准第1个ANSI/ISOC标准C99C113.使用C语言的7个步骤一、基本数据类型、表达式及运算符1.C语言中的数据类型基本数据类型整型字符型浮点型缺省型空类型void泊尔类型bool构造数据类型指针类型2.基本数据类型在学习数据类型之前我们可以先学习两个关键字和转义字符、格式控制符、格式修饰符有助于学习不同数据类型的大小。运用sizeof( )关键字可以获取数据类型在内存中所占的字节数。运用printf( )可以在终端打印引号内的内容。转义字符是通过特定的符号序列表示特殊字符或操作的方式常用于处理不可打印字符或具有特殊意义的字符。表格来源《C Primer Plus (第六版) 中文版》格式控制符也被称为格式化字符串或格式化标识符。它们是用于指定数据格式的特殊字符序列。表格来源《C Primer Plus (第六版) 中文版》整型整型数据如int、short、long在内存中以补码形式存储。有符号整型可以表示正数也可以表示负数最高位为符号位0正数 1负数其他位位数据位正数的补码原码 负数的补码反码-1例如-2026原码1000 0111 1110 1010反码1111 1000 0001 0101补码1111 1000 0001 0110无符号整型仅能表示正数最高位为符号位整型数据的溢出unsigned short 最大值1?最大值1----》最小值最小值-1-.--》最大值●short短整型内存中2字节无符号0000 0000 0000 0000(最小值0) ——1111 1111 1111 1111(最大值65535)有符号1000 0000 0000 0000(最小值-32768) ——0111 1111 1111 1111(最大值32767)●int整型内存中为4字节●long长整型内存中为8字节总结初学C语言时int类型应该能满足大多数程序的整数类型需求。尽管如此还应了解一下整型的其他形式。C语言提供3个附属关键字修饰基本整数类型:short、long和unsigned。应记住以下几点。short int类型(或者简写为short)占用的存储空间可能比int类型少常用于较小数值的场合以节省空间。与int类似short是有符号类型。l ong int或long占用的存储空间可能比int多适用于较大数值的场合。与int类似long是有符号类型。long long int或long long(C99标准加入)占用的储存空间可能比long多适用于更大数值的场合。该类型至少占64位。与int类似long long是有符号类型。unsigned int或unsigned只用于非负值的场合。这种类型与有符号类型表示的范围不同。例如16位unsigned int允许的取值范围是0~65535而不是-32768~32767。用于表示正负号的位现在用于表示另一个二进制位所以无符号整型可以表示更大的数。在C90 标准中,添加了 unsigned long int 或 unsigned long 和 unsigned int 或 unsignedshort 类型. C99 标准又添了 unsigned long long int 或 unsigned long long.在任何有符号类型前面添加关键字signed可强调使用有符号类型的意图。例如short、shortint、signed short、signed short int 都表示同一种类型.字符型在所有的编程语言中字符型数据都是以ASCII码(美国信息交换标准代码)的形式保存每一个字符都对应着一个编码这个编码其实是一个整数来的编码范围0 ~ 127。因此字符型数据也可以当作整形数据进行运算。ASCII码表如下浮点型用来表示小数的数据类型。单精度浮点型float● 精度范围6-8位●内存中占的字节数4● IEEE标准规定double类型在内存中符号位1bit、指数位8bits、尾数位23bits方式存储。8.125符号位01000.001——1.000001 2^3指数位1273130——1000 0010尾数位00000100000000000000000内存位0100 0001 0000 0010 0000 0000 0000 00000x41020000双精度浮点型double●精度范围12-16位●内存中占的字节数8●IEEE标准规定double类型在内存中符号位1bit、指数位11bits、尾数位52bits方式存储。8.125符号位01000.001——1.000001 2^3指数位102331026——100 0000 0010尾数位00000100000000000000000....(1后有46个0)内存位0100 0000 0010 0000 0100 0000 0000 0000....0x40204000...注意浮点数据在储存时可能出现精度损失。缺省类型空类型void函数的形参和返回值不返回参数、不返回数据。用在函数和指针部分目前暂做了解泊尔类型空类型bool结果true/false#includestdio.h #includestdbool.h int main(){ bool a true; bool b false; printf(sizeof(a):%d true:%d false:%d\n, a, a, b); return 0; } //输出结果 sizeof(a):1 true:1 false:0二、常用输入输出函数三、流程控制分支结构、循环结构四、函数五、数组六、指针七、构造数据类型八、内存管理、位运算九、程序调试方法

相关新闻

教育行业数据分析:AI 学情诊断与个性化学习路径推荐实战

教育行业数据分析:AI 学情诊断与个性化学习路径推荐实战

教育行业数据分析:AI 学情诊断与个性化学习路径推荐实战 一、背景与需求 最近接了个教育行业的数据分析项目,一家在线教育平台想要通过 AI 技术实现学情诊断和个性化学习路径推荐。他们的痛点很明确:学生数量上来了,但完课率和续费…

2026/10/9 5:19:31 阅读更多 →
Unity WebGL本地部署实战:IIS服务器配置与避坑指南

Unity WebGL本地部署实战:IIS服务器配置与避坑指南

1. 项目概述:从游戏到网页,Unity WebGL的部署之路如果你和我一样,是从传统PC或移动端Unity开发转向WebGL的,那么“本地部署”这四个字,很可能就是你遇到的第一道坎。Unity WebGL项目打包出来,并不是一个简单…

2026/10/9 7:19:45 阅读更多 →
国产化 Agent 信创适配解析:芯片、操作系统与中间件兼容能力深度技术拆解

国产化 Agent 信创适配解析:芯片、操作系统与中间件兼容能力深度技术拆解

随着国产化信创生态进入深水区,企业级AI Agent(智能体)的适配能力已成为评估数字化转型深度的关键维度。在2026年7月的当下,国产化适配已不仅仅局限于软件的简单移植,而是涉及芯片指令集、操作系统内核、中间件协议以及…

2026/10/6 15:49:07 阅读更多 →

最新新闻

openrig:Node.js+tmux搭建本地AI编码环境与多模型切换

openrig:Node.js+tmux搭建本地AI编码环境与多模型切换

1. 从“openrig”说起:一个被低估的本地AI编码环境搭建思路 第一次看到“openrig”这个词,我下意识地把它拆成了“open”和“rig”两部分。在开发者的语境里,“rig”通常指一套组装好的设备或环境配置,比如“mining rig”是矿机&a…

2026/10/15 13:49:24 阅读更多 →
Pandas按名取数:loc、iloc、at等五种索引器原理与实战

Pandas按名取数:loc、iloc、at等五种索引器原理与实战

1. 项目概述:为什么“按名取数”是Pandas最常踩坑却最该掌握的基本功你有没有遇到过这样的场景:刚用pd.read_csv()读进一个表格,第一反应是df.head()看看数据长啥样,结果发现索引不是默认的0、1、2……而是北京、上海、广州&#…

2026/10/15 13:49:24 阅读更多 →
多线程锁机制

多线程锁机制

多个线程同时操作同一份数据时,如果不加控制可能导致结果错误 假设一个变量 count 0,两个线程各执行 1000 次 count,期望结果是 2000 但 count 在底层通常分三步: 1.从内存读 count 到寄存器 2.寄存器加 1 3.写回内存 如果两个线…

2026/10/15 13:49:24 阅读更多 →
openrig:AI编程CLI工具的本地运行编排层实践指南

openrig:AI编程CLI工具的本地运行编排层实践指南

1. 从零认识 openrig:它到底解决什么问题第一次看到 openrig 这个名字,很多人会以为是某个硬件项目,毕竟“rig”在英文里常指设备支架或矿机机架。但如果你最近在折腾 Claude Code、Codex 这类终端 AI 编程助手,大概率已经在某个 …

2026/10/15 13:49:24 阅读更多 →
java面向对象基础

java面向对象基础

1.基本格式书写格式public class Data_Lisr {int grades;public Data_Lisr(){System.out.println("调用了无参数构造器>>>"grades);}public Data_Lisr(int grades){System.out.println("调用了有参数构造器>>>>"this.grades);} }调用…

2026/10/15 13:49:24 阅读更多 →
项目经理绝不能提拔这六种人:责任踢球员、嘴强指挥官、职场画饼师、狭隘利己者、情绪失控者、权力独裁者

项目经理绝不能提拔这六种人:责任踢球员、嘴强指挥官、职场画饼师、狭隘利己者、情绪失控者、权力独裁者

项目延期,很多时候不是因为计划写得不够细,而是因为关键位置放错了人。你以为提拔一个人,是给团队多一个负责人;结果他上来之后,问题没人扛、会议没人收口、资源越抢越乱、风险越报越晚。项目经理每天忙着救火&#xf…

2026/10/15 13:48:20 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45: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/15 9:49:14 阅读更多 →