news 2026/7/30 2:52:24

day 8:C语言二维字符数组与函数详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day 8:C语言二维字符数组与函数详解

一、二维字符型数组

1. 功能

二维字符型数组主要用于存储和操作字符串数组。

2. 定义

char str[5][32];

定义了一个包含5个字符串的数组,每个字符串最大长度为31个字符(加上结束符'\0')。

3. 元素的访问

  • str[0][2]:访问单个字符元素(char类型)
  • str[0]:访问第一行字符数组(char [32]类型)

4. 数组的初始化

4.1 二维整型数组初始化示例
int a[2][3] = {1, 2, 3, 4, 5, 6}; int a[2][3] = {{1, 2, 3}, {4, 5, 6}}; int a[2][3] = {1, 2, 3, 4}; int a[2][3] = {{1, 2}, {3}}; int a[2][3] = {0}; int a[2][3] = {{0}};
int a[][3] = {1, 2, 3, 4, 5, 6}; int a[][3] = {1, 2, 3, 4}; int a[][3] = {{1, 2}, {3}};
4.2 二维字符数组初始化示例
// 方式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'} }; // 方式2:字符串初始化(带花括号) char str[5][32] = { {"hello"}, {"world"}, {"how"}, {"are"}, {"you"} }; // 方式3:字符串初始化(简化) char str[5][32] = {"hello", "world", "how", "are", "you"}; // 方式4:全部初始化为0 char str[5][32] = {0}; // 方式5:省略第一维大小 char str[][32] = {"hello", "world", "how", "are", "you"};

二、函数

1. 功能

  • 能够避免重复性代码
  • 可以让程序模块化

2. 函数的三种形式

2.1 函数的定义
函数类型 函数名(数据类型1 形参1, 数据类型2 形参2, ...) { 函数体; return 返回值; }

函数名:与变量名要求保持一致

形参:形式参数,用来展示函数对数据的处理方式

函数类型:函数运行结果的类型

  • 返回值类型与函数类型不一致时,以函数类型为准
  • 函数类型如果不写默认为int类型
  • 如果想设置为void类型返回值,必须将函数类型写成void

返回值:函数的运行结果

2.2 函数的调用
函数名(实参1, 实参2, ...);

调用:可以通过函数名加实参使用函数

  • 主调函数:主动调用函数的函数称为主调函数
  • 被调函数:被别人调用的函数称为被调函数

传参:主调函数调用被调函数,会将实参的值传递给形参

  • 实参个数与形参个数必须一一对应
  • 如果实参与形参类型不匹配,则将实参类型强制类型转换为形参类型再传参

函数调用结果类型为函数类型

函数调用结果的值为函数的返回值

2.3 函数的声明
  • 如果被调函数在主调函数下方定义,需要在主调函数上方声明被调函数
  • 如果被调函数在主调函数上方定义,不需要声明被调函数

3. 变量的作用域和生存周期

3.1 变量的作用域:能够使用变量的范围
  • 局部变量:变量作用域在定义该变量最近的大括号内
  • 全局变量:变量的作用域在本文件中均可使用
3.2 变量的生存周期:变量从被开辟空间到空间被回收的整个过程称为生存周期

4. 变量的存储类型

4.1 变量的定义
存储类型 数据类型 变量名; int a; auto int a;
4.2 存储类型
  1. 自动型存储、局部变量(默认):auto
    • 将变量存放在栈区
    • 局部变量未经初始化为随机值
    • 执行到变量定义时为变量开辟空间
    • 执行到超过变量作用域范围被回收
  2. 寄存器存储:register
    • 将变量存放在CPU内部的寄存器中,如果寄存器存满了等价于auto类型
  3. 外部声明:extern
    • 声明变量或者函数是外部存储的
  4. 静态存储:static
    • 将变量存放在静态区中
    • 未经初始化时值为0值
    • 编译代码时为变量分配空间,执行时加载到数据区中
    • 程序结束回收空间
    • 限定变量/函数作用域只能在本文件中使用
    • 防止多文件编程时变量名或函数名冲突

5. 函数传参

5.1 值传递

实参将值传递给形参,形参拿到实参的值实现后续的操作

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 2:51:38

> 整理了完整的软考高级备考资料包,包含真题、论文模板、知识框架图,文末免费获取

整理了完整的软考高级备考资料包,包含真题、论文模板、知识框架图,文末免费获取 前言 准备考2026年下半年软考高级——系统架构设计师?先搞清楚考试规则再备考,方向比努力更重要。本文把考试规则、科目结构、评分标准、报名流程一…

作者头像 李华
网站建设 2026/7/30 2:49:28

C语言实现十进制转二进制:从算法原理到工程实践详解

1. 项目概述:从日常计数到机器语言我们每天都在和数字打交道,无论是手机电量、账户余额还是网页访问量,这些数字大多以我们最熟悉的“十进制”形式呈现。但如果你曾好奇过计算机内部是如何“思考”和存储这些数字的,那么“二进制”…

作者头像 李华
网站建设 2026/7/30 2:48:07

lvs项目中的所有知识点总结

目录 一,什么是集群(Cluster) 二、集群分类 三、LVS 的作用 四,LVS 四种工作模式及原理 1. NAT 模式(VS-NAT) 2. DR 模式(Direct Routing,直接路由,生产最常用&…

作者头像 李华
网站建设 2026/7/30 2:43:09

Waves Ultimate 17一键安装完整版安装教程Waves 17最新版VR/R2R下载专用混音插件Win/Mac系统Waves 17/16/15/14视频安装教程一键安装完整版混音插件

Win/Mac Waves 17 / Waves16 最新中文完整版 ​ Waves 17 下载链接: Win系统 https://www.dygdu.com/16997.html Mac 系统 https://www.dygdu.com/17000.html 一、Waves Audio品牌简介 Waves Audio成立于1992年,总部位于美国纽约,是全球领…

作者头像 李华
网站建设 2026/7/30 2:37:24

终于不用手动调格式[特殊字符]OKBIYE排版真的太懂毕业生了

写论文半天,调格式两天! 应该所有毕业生都懂这种崩溃:内容写完了,却死在细碎排版上😭 行距不对、标题层级乱、参考文献飘红、页码错乱、页眉页脚对不上、全角半角混用…… 导师每次返修不说内容,只揪格式…

作者头像 李华
网站建设 2026/7/30 2:36:51

Python角度与弧度转换:math与numpy库实战指南

1. 项目概述:从一次数据可视化异常说起前几天在做一个传感器数据分析的小项目时,遇到了一个让我排查了半天的“怪事”。我用Python读取了一组角度数据,准备用matplotlib画个极坐标图展示方向分布。代码逻辑很简单,数据也确认无误&…

作者头像 李华