【C 语言入门】Day09 二维字符数组、函数基础与变量存储类型全解析
本文为 C 语言学习第九天的知识点整理涵盖二维字符数组用法、函数的定义 / 调用 / 声明以及变量作用域、生存周期和四种存储类型详解文章目录1. 二维字符型数组1.1 功能与定义1.2 元素访问1.3 五种初始化方式2. 函数基础2.1 函数的作用2.2 函数的定义2.3 函数的调用2.4 函数的声明3. 变量的作用域与生存周期3.1 作用域空间维度哪里能用3.2 生存周期时间维度存在多久4. 变量的四大存储类型4.1 auto 自动型局部变量默认4.2 register 寄存器型4.3 extern 外部声明4.4 static 静态存储重点考点今日知识点总结1. 二维字符型数组1.1 功能与定义二维字符数组的核心作用是存储和操作多个字符串可以理解为 “字符串数组”—— 每一行存放一个独立的字符串。语法格式char 数组名[行数][每行最大字符数];示例char str[5][32]; // 共5行每行最多存31个有效字符 1个结束符\0注意每行长度要预留一个位置给字符串结束符\0因此 32 字节的行最多存放 31 个有效字符。1.2 元素访问二维字符数组有两种常用访问粒度访问单个字符str[行号][列号]得到一个char类型字符访问一整行字符串str[行号]得到一个字符数组首地址可直接当作字符串使用str[0][2]; // 访问第0行第2列的单个字符 str[0]; // 访问第0行的整串字符等价于字符串首地址1.3 五种初始化方式方式 1逐个字符赋值最原始char str[5][32] { {h, e, l, l, o, \0}, {w, o, r, l, d, \0}, {h, o, w, \0}, {a, r, e, \0}, {y, o, u, \0} };手动写每个字符必须手动补充\0结束符。方式 2字符串逐行大括号包裹char str[5][32] {{hello}, {world}, {how}, {are}, {you}};每个字符串用双引号系统自动追加\0。方式 3省略内层大括号最常用char str[5][32] {hello, world, how, are, you};按顺序依次给每行赋值写法最简洁。方式 4全零初始化char str[5][32] {0};所有元素初始化为\0即空字符串。方式 5省略行数char str[][32] {hello, world, how, are, you};列数不能省略行数可以省略编译器会根据初始化的字符串数量自动计算行数。2. 函数基础2.1 函数的作用避免重复代码相同逻辑只写一次多处调用减少代码冗余模块化编程将复杂程序拆分为多个功能模块每个函数负责一个功能提升代码可读性与可维护性2.2 函数的定义函数定义就是写出函数的具体实现代码语法格式返回值类型 函数名(数据类型1 形参1, 数据类型2 形参2, ...) { 函数体语句; return 返回值; }四个核心概念函数名命名规则与变量名一致遵循标识符命名规范形参形式参数定义在函数括号内用来接收外部传入的数据描述函数的处理方式返回值类型函数类型函数执行结束后返回结果的数据类型若返回值类型与return后的值类型不一致以函数类型为准自动强制转换不写函数类型时C 语言默认为int类型无返回值的函数必须显式写void不能省略返回值函数运行的最终结果通过return返回给主调函数2.3 函数的调用语法函数名(实参1, 实参2, ...);关键规则主调函数与被调函数主动发起调用的是主调函数被调用执行的是被调函数参数传递调用时实参的值会拷贝一份传递给形参是值传递实参与形参的个数必须一一对应若类型不匹配实参会自动强制转换为形参的类型再传递函数调用的本质函数调用表达式的类型 函数的返回值类型值 return 返回的值2.4 函数的声明函数声明的作用是告诉编译器有这个函数存在解决 “函数定义在调用之后” 的编译报错问题。规则被调函数定义在主调函数上方无需声明可直接调用被调函数定义在主调函数下方必须在调用之前进行函数声明声明格式返回值类型 函数名(形参类型列表);例如int add(int a, int b);或简写为int add(int, int);3. 变量的作用域与生存周期这是两个完全不同维度的概念务必区分清楚3.1 作用域空间维度哪里能用指变量能够被合法访问的代码范围。局部变量作用域限定在定义该变量的最近一对大括号{}内出了括号就无法访问全局变量作用域覆盖整个当前源文件配合extern可扩展到工程内其他文件3.2 生存周期时间维度存在多久指变量从被分配内存空间到空间被系统回收的整个时间段。局部变量进入代码块时创建离开时销毁全局变量程序启动时创建程序结束时销毁4. 变量的四大存储类型存储类型直接决定了变量的存储位置、生存周期、默认初始值完整定义语法存储类型 数据类型 变量名;例如auto int a;等价于我们平时写的int a;4.1 auto 自动型局部变量默认存储位置内存栈区作用域局部作用域仅最近的{}内可用生存周期执行到定义语句时开辟空间离开作用域立即回收初始值未手动初始化时为随机垃圾值特点局部变量默认就是auto类型关键字通常省略不写4.2 register 寄存器型存储位置建议存入 CPU 内部寄存器读写速度远快于内存寄存器不足时自动退化为auto存入栈区作用域仅局部作用域只能修饰局部变量生存周期与auto一致离开作用域立即回收初始值未初始化时为随机值4.3 extern 外部声明核心作用声明而非定义告诉编译器 “这个全局变量 / 函数在其他源文件中已经定义”用于跨文件访问存储位置不分配新空间对应变量本身存放在静态区易错点extern只做声明不能附带初始化例如extern int a;正确extern int a 10;错误4.4 static 静态存储重点考点存储位置内存静态区数据段生存周期编译阶段就分配空间程序运行全程存在程序结束后才回收初始值未手动初始化时默认自动赋值为0核心特性整个程序运行中只初始化一次根据修饰对象不同效果分为两类① static 修饰局部变量作用域不变仍然只能在当前{}内访问生命周期延长离开作用域后空间不回收下次进入代码块时保留上一次的值② static 修饰全局变量 / 函数生命周期不变仍然是程序全程存在作用域收缩原本可跨文件访问的全局变量加static后只能在当前源文件内使用其他文件无法通过extern调用起到封装和避免命名冲突的作用今日知识点总结二维字符数组本质是字符串数组str[i]代表第 i 行字符串str[i][j]代表单个字符初始化时行数可省、列数不可省。函数包含定义、调用、声明三要素值传递是实参向形参拷贝数据形参修改不影响实参。作用域看空间范围生存周期看存在时长二者不可混淆。四种存储类型中static是最高频考点修饰局部变量延长生命周期修饰全局变量收缩作用域且全程只初始化一次、默认值为 0。

相关新闻

C#高性能实时曲线控件开发:从GDI+到WPF的架构设计与性能优化

C#高性能实时曲线控件开发:从GDI+到WPF的架构设计与性能优化

1. 项目缘起:为什么我们需要一个自己的曲线控件?在工业监控、数据分析和上位机软件开发中,实时绘制动态变化的曲线是一个极其普遍且核心的需求。无论是监控设备温度、压力,还是分析股票行情、传感器数据流,一个响应迅速…

2026/7/30 4:45:43阅读更多 →
C# WinForms单页面应用开发:基于UserControl的动态视图切换方案详解

C# WinForms单页面应用开发:基于UserControl的动态视图切换方案详解

1. 项目概述:为什么我们需要单页面窗口切换在桌面应用开发中,尤其是使用 C# WinForms 进行快速原型开发或构建内部工具时,我们经常会遇到一个经典问题:如何在一个主窗体(Form)内,优雅、流畅地切…

2026/7/30 4:45:43阅读更多 →
三菱PLC与组态王仿真:基于MX OPC Server的零成本调试环境搭建

三菱PLC与组态王仿真:基于MX OPC Server的零成本调试环境搭建

1. 项目背景与核心价值:为什么需要OPC Server进行仿真连接? 在工业自动化项目的前期开发、调试和教学培训中,直接连接物理PLC设备往往面临诸多不便:设备成本高、接线复杂、存在安全风险,并且难以模拟各种异常工况。这时…

2026/7/30 4:45:43阅读更多 →
国产长芯微LDC7124-8 替代 AD7124-8 参数对比分析

国产长芯微LDC7124-8 替代 AD7124-8 参数对比分析

描述LDC7124-8是一款适合高精度测量应用的低功耗、低噪声、高度集成的模拟前端。该器件内置一个低噪声24位Σ-Δ型模数转换器(ADC),可通过寄存器配置提供8个差分输入或15个单端或伪差分输入。LDC7124-4可以提供4对差分输入或者7个单端或伪差分输入。片内低噪声增益放…

2026/7/30 6:02:01阅读更多 →
如何5步快速搭建智能黑苹果配置:OpCore-Simplify终极指南

如何5步快速搭建智能黑苹果配置:OpCore-Simplify终极指南

如何5步快速搭建智能黑苹果配置:OpCore-Simplify终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 想要在普通PC上体验macOS的魅力&…

2026/7/30 6:02:01阅读更多 →
Elasticsearch在电商推荐系统中的应用与优化

Elasticsearch在电商推荐系统中的应用与优化

1. 分布式商品推荐系统的架构挑战在电商平台的实际运营中,商品推荐系统面临着三个核心难题:首先是如何处理海量商品数据的实时检索,其次是保证高并发用户请求下的系统响应速度,最后是确保推荐结果的精准度。传统单体架构在应对这些…

2026/7/30 6:02:01阅读更多 →
国际知名 BPM / 工作流厂商有哪些,国产 CCFlow / JFlow 有什么优劣势?

国际知名 BPM / 工作流厂商有哪些,国产 CCFlow / JFlow 有什么优劣势?

国际知名 BPM / 工作流厂商有哪些,国产 CCFlow / JFlow 有什么优劣势?文档性质:选型参考与能力画像,非厂商宣传稿。 对比范围:Pegasystems、Appian、IBM、Software AG、Camunda、Flowable,以及国产驰骋 CCF…

2026/7/30 6:02:01阅读更多 →
沙盘赛车差异化盈利与全域运营深度分析

沙盘赛车差异化盈利与全域运营深度分析

行业背景(为什么越来越多项目布局该业态)线下消费从 “单纯玩乐” 转向 “社交体验”,消费者更愿意为互动感、参与感、分享感付费。大量游乐门店陷入同质化竞争,单机设备复购低迷,大型竞速项目投资门槛高、回本周期漫长…

2026/7/30 6:02:01阅读更多 →
2026景区管理系统怎么选型?从技术参数到方案配置的完整解析

2026景区管理系统怎么选型?从技术参数到方案配置的完整解析

2026景区管理系统怎么选型?从技术参数到方案配置的完整解析——四大技术维度的选型指南与指标解读引言景区综合管理系统涉及通道闸机机械工程、人脸识别算法、分布式系统架构、物联网感知层等多个技术领域。采购方在选型时面对的不仅是品牌和价格,更是大…

2026/7/30 6:00:00阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →