C语言超详细教程
系列文章目录
文章目录
- 系列文章目录
- 1 运算符
- 1.1 算术运算符:
- 2 控制语句
- 2.1 条件语句:
- 2.2 循环语句:
- 3 函数
- 3.1 函数的定义与声明:
- 3.2 递归函数:
- 4 指针
- 4.1 指针的定义与使用
- 函数指针:
- 5. 数组与字符串
- 5.1 数组
- 一维数组:相同类型元素的集合(如:
- 多维数组:数组的数组(如:
- 字符串:
- 6 结构体与联合体
- 6.1 结构体
- 联合体
- 7 .文件处理
- 7.1 文件的打开与关闭:
- 读写文件:
- 8 预处理指令
- 8.1 头文件包含
- 宏定义:
- 条件编译
- 9 错误处理与调试
- 9.1 错误处理
- 10 C语言标准库
- 11 程序结构与风格
- 11.1 程序结构:
1 运算符
1.1 算术运算符:
常用的算术运算符包括加+、减-、乘*、除/、余数%。
关系运算符:
比较两个值的关系,如等于==、不等于!=、大于>、小于<等。
逻辑运算符:
用于计算布尔表达式结果,如与&&、或||、非!。
2 控制语句
2.1 条件语句:
if:根据条件执行代码块。
else if 和 else:提供多个条件分支。
switch:基于单一变量的多个可能值进行分支。
示例:
c
if (age >= 18) {
printf(“成年人\n”);
} else {
printf(“未成年人\n”);
}
2.2 循环语句:
for:适合已知次数的循环(如:
c
for (int i = 0; i < 5; i++) {
printf("%d “, i);
}
while:适合未知次数的循环,基于条件(如:
c
int i = 0;
while (i < 5) {
printf(”%d “, i);
i++;
}
do…while:至少执行一次的循环形式(如:
c
int i = 0;
do {
printf(”%d ", i);
i++;
} while (i < 5);
跳转语句:
break:终止循环或switch结构。
continue:跳过当前循环的剩余部分,继续下一次循环。
return:结束函数并返回值。
3 函数
3.1 函数的定义与声明:
函数声明(原型)一般放在文件顶部,定义在文件底部(如:
c
int add(int a, int b); // 函数声明
int add(int a, int b) { // 函数定义
return a + b;
}
参数传递:
值传递:将参数的副本传入函数。
引用传递:通过指针传递,直接修改原始数据
相关文章:
C语言超详细教程
系列文章目录 文章目录 系列文章目录1 运算符1.1 算术运算符:2 控制语句2.1 条件语句:2.2 循环语句:3 函数3.1 函数的定义与声明:3.2 递归函数:4 指针4.1 指针的定义与使用函数指针:5. 数组与字符串5.1 数组一维数组:相同类型元素的集合(如:多维数组:数组的数组(如:…...
[开源]3K+ star!微软Office的平替工具,跨平台,超赞!
大家好,我是JavaCodexPro! 数字化的当下,高效的办公工具是提升工作效率的关键,然而大家想到的一定是 Microsoft Office 办公软件,然而价格也是相当具有贵的性价比。 今天JavaCodexPro给大家分享一款超棒的开源办公套…...
如何借助计算机视觉算法通过识别水尺精准识别水位
如何借助计算机视觉算法通过识别水尺精准识别水位 随着技术的发展,计算机视觉在多个领域得到了广泛的应用,尤其是在环境监测方面。本文将介绍一种利用计算机视觉算法通过识别水尺来精准识别水位的方法。这种方法可以用于河流、水库等场景的水位监测&…...
C++(进阶) 第1章 继承
C(进阶) 第1章 继承 文章目录 前言一、继承1.什么是继承2.继承的使用 二、继承方式1.private成员变量的(3种继承方式)继承2. private继承方式3.继承基类成员访问⽅式的变化 三、基类和派生类间的转换1.切片 四、 继承中的作⽤域1.隐藏规则&am…...
获国家权威机构认可 亚信安全荣获CNVD技术组支撑单位认证
近日,国家信息安全漏洞共享平台(CNVD)依据《CNVD管理办法》及《CNVD支撑单位能力要求》,对申请加入考察期的单位进行了全面而严格的能力评估。经过层层筛选与审核,亚信安全凭借卓越的技术实力与专业的服务能力…...
2. Autogen官网教程 (Terminating Conversations Between Agents)
在这一章中,我们将探讨如何结束自动生成代理之间的对话。 导入必要的库 import osfrom autogen import ConversableAgent配置智能体 我们需要配置智能体使用的语言模型(LLM)。以下是一个配置示例: llm_config {"config_…...
java 排序 详解
Java 提供了多种方式对数据进行排序,包括数组和集合的排序。排序在日常开发中非常常见,以下将从排序算法的基本原理、Java 中的内置排序方法以及自定义排序三方面进行详解。 1. 排序的基本概念 排序是将一组数据按特定顺序排列的过程,常见顺…...
【数据集】城市通量塔站点观测数据
【数据集】城市通量塔站点观测数据 数据概述数据下载参考数据概述 数据集简介:Harmonized gap-filled dataset from 20 urban flux tower sites 数据集名称:Harmonized gap-filled dataset from 20 urban flux tower sites (用于 Urban-PLUMBER 项目的 20 个城市通量塔站点…...
scau编译原理综合性实验
一、题目要求 题目: 选择部分C语言的语法成分,设计其词法分析程序、语法语义分析程序。 要求: 设计并实现一个一遍扫描的词法语法语义分析程序,将部分C语言的语法成分(包含赋值语句、if语句、while循环语句…...
ETAS工具导入DBC生成Com协议栈
文章目录 前言DBC配置关键属性Cobra参数配置Cobra使用isolar工程配置总结前言 ETAS工具导入DBC主要也是生成arxml用的,ETAS推荐使用Cobra导入,本文介绍导入过程及注意事项 DBC配置关键属性 对于普通Com报文,配置为周期发送,及其周期,NmMessage配置为No,示例如下: 对…...
表单校验规则
这里简单记录下vue使用表单时候,给表单添加校验规则,直接上代码 <script setup>import { ref } from vue// 定义表单对象const form ref({account: ,password: ,agree: true})// 定义表单验证规则const rules {account: [{required: true, mess…...
接口的扩展
1. 接口中新增的方法 JDK7之前接口中只能定义抽象方法。 JDK8的新特性:接口中可以定义有方法体的方法。(默认、静态) JDK9的新特性:接口中可以定义有私有方法体的方法。 有方法体的方法:接口升级时,为了兼容…...
新能源电机轴承电腐蚀,如何破?
近年来,随着全球范围内对可再生能源的重视与推动,新能源电机作为新能源汽车、风力发电和太阳能发电等系统的重要组成部分,得到了迅猛的发展。然而,在实际应用中,新能源电机的维护与管理越来越受到关注,其中…...
Java中的File和IO流
File对象 File对象本质是一个文件或文件夹,用于写入和读取文件内容 注意:对于相对路径而言,在单元测试方法中的File是相对于Module,在main中的File是相对于Project 构造器 File(String pathname)File file1 new File("D:…...
ls命令实操笔记
ls命令:全称list,显示文件的文件名与相关属性。(目前工作目录所含之文件及子目录) 4567 45678 7891 a1b2 a2b3c abcd Abcd acde aD7E bcde 通过ls浏览上述文件所在的目录,实现以下需求: 浏览含…...
线段数--算法
线段树是常用来维护 区间信息 的数据结构 线段树可以在 O(logN) 的时间复杂度内实现 单点修改区间修改区间查询 区间求和求区间最大值求区间最小值 简单介绍一下线段树 线段树是一个将区间内的数不断细分的一种数据结构,也就是一个完全二叉树,用每一…...
JS的DOM操作和事件监听综合练习 (具备三种功能的轮播图案例)
下面是是对dom操作的一个综合练习 下面代码是html的基本骨架(没有任何的功能): <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" c…...
低温存储开关机问题
问题: 某消费电子产品在进行可靠性实验室,在低温-30C存储两个小时后,上电不开机。在常温25C时,开关机正常。 分析: 1、接串口抓log信息,从打印信息可以看出uboot可以起来,在跑kernel时&#x…...
mysql系列1—mysql架构和协议介绍
背景: 本文开始整理mysql相关的文章,用于收集数据库相关内容;包括mysql架构和存储方式、索引结构和查询优化、数据库锁等内容。思考如何根据具体的业务给出最优的分表规划和表设计、字段选择和索引设计、优化的SQL语句,以及数据库…...
设计模式——模板模式
定义与基本概念 模板模式(Template Pattern)是一种行为设计模式。它在一个抽象类中定义了一个操作的算法骨架,将一些步骤的实现延迟到具体子类中。这个抽象类就像是一个模板,定义了执行某个流程的基本框架,而具体的细…...
2026年3月上海污水处理设备生产厂家推荐:十大口碑产品评测对比知名
步入2026年3月,随着环保政策持续收紧与工业智能化升级的双重驱动,企业对污水处理设备的需求已从单纯的“达标排放”转向“高效、智能、全生命周期成本最优”。根据中国环保产业协会发布的《2026年度水处理装备市场趋势报告》,超过68%的采购决…...
避开原子操作坑!Keil AC5移植LwRB 3.0.0的保姆级避坑指南
避开原子操作坑!Keil AC5移植LwRB 3.0.0的保姆级避坑指南 在嵌入式开发中,环形缓冲区(Ring Buffer)是一种常见的数据结构,广泛应用于串口通信、DMA传输等场景。LwRB(Lightweight Ring Buffer)作…...
Karp的21个NPC问题:从理论到实践的经典探索
1. Karp与NPC问题的历史背景 1971年,Stephen Cook在论文《The Complexity of Theorem Proving Procedures》中首次提出了NP完全性的概念,并证明了布尔可满足性问题(SAT)属于NP完全问题。这一突破性工作为计算复杂性理论奠定了基石…...
GetQzonehistory终极指南:三步永久备份你的QQ空间数字记忆
GetQzonehistory终极指南:三步永久备份你的QQ空间数字记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否也曾翻看QQ空间,发现那些承载青春记忆的说说正在…...
告别torch.save!用safetensors安全存储PyTorch模型,手把手教你处理metadata(附完整代码)
告别torch.save!用safetensors安全存储PyTorch模型,手把手教你处理metadata(附完整代码) 在深度学习项目的实际开发中,模型参数的保存和加载是每个开发者都必须掌握的基础技能。PyTorch框架默认提供的torch.save和torc…...
基于Vue的川汇水产养殖管理系统[vue]-计算机毕业设计源码+LW文档
摘要:随着水产养殖业的快速发展,传统的管理方式已难以满足现代化水产养殖的需求。本文介绍了一款基于Vue框架开发的川汇水产养殖管理系统,该系统旨在提高水产养殖管理的效率和精准度。系统涵盖了系统用户管理、水质管理、药品管理、设备管理、…...
别再只盯着虚短虚断!运放设计必须掌握的6个非理想参数(附MCP6N16实测数据)
运算放大器非理想特性实战指南:从理论到MCP6N16实测 在嵌入式系统设计中,运算放大器如同精密仪器中的齿轮,其微小偏差可能导致整个测量系统的崩溃。许多工程师在初期学习阶段被"虚短虚断"的理想模型所束缚,直到实际项目…...
事务隔离级别全景解析:从脏读到幻读的深度剖析
事务隔离级别全景解析:从脏读到幻读的深度剖析在数据库并发控制的宏大叙事中,事务隔离级别扮演着“交通规则”的角色。当多个用户同时访问和修改数据时,如果没有合理的隔离机制,数据的一致性和完整性将面临巨大风险。本文将深入探…...
忍者像素绘卷惊艳效果:宇智波佐助千鸟刃×16-Bit闪电特效像素动效展示
忍者像素绘卷惊艳效果:宇智波佐助千鸟刃16-Bit闪电特效像素动效展示 1. 作品概览 忍者像素绘卷是基于Z-Image-Turbo深度优化的图像生成工作站,它将传统忍者文化与16-Bit复古游戏美学完美融合。这款工具特别适合创作具有强烈视觉冲击力的像素风格动漫角…...
LPDDR4X引脚功能详解:从CK到DQS,这些信号线你都用对了吗?
LPDDR4X引脚功能深度解析:信号完整性设计与实战避坑指南 在移动设备和高性能嵌入式系统中,LPDDR4X内存已成为主流选择。但许多硬件工程师在实际设计中常陷入"信号连通即可"的误区,导致系统稳定性问题频发。本文将带您深入理解每个…...
