c语言的数组以及简单函数
数组与函数的基本定义
数组
正常数组
数组的四要素
- 数组名:本质上就是一个标识符常量
- 元素: 同一个数组中的元素数据类型要相同
- 下标:数组的索引可以通过下标查找数组里的某一个值 从0开始
- 数组的长:表示元素的数量
数组的定义
- 先指定元素类型与个数,后在进行赋值(初始化)
int arr[7]; 后面在初始化
- 指定元素个数与类型,并且进行初始化
int arr[4] = {1,2,3,4};
- 指定元素类型,并且初始化(不指定长度时,必须在声明时就进行初始化)
int arr[] = {1,2,4,5};
数组越界
例
int arr[4];
for(int i = 0; i <= 4 ;i ++){
printf("%d",arr[i]); 数组的下表是从0开始 当4的时候就越界了,只有4个元素,越界时会得到一个 没有意义的垃圾值
}
数组长度的计算
sizeof 数组名 / 数组名[0]; 用sizeof 求出数组的中字节数出去其中一个元素的字节数
字符数组
字符数组的本质
就是一个char类型的数组,但是最后要加一个结束符号标记 \0,不加的话会出错
假如你要定义一个长度数组要存入8个字符,你的数组长度就要在9或9以上要给结束符号位留位置
如何定义字符数组
- char arr[6]; 后面在遍历但是只能存入5个字符要留一个符号结束标记
- char arr[4] = {'t', 'o', 'm'}; // 后面自动添加 \0 错char arr[] = {'j', 'a', 'c', 'k'}; // 不会自动添加 \0
- char arr[] ="nihao" char arr[] = {"excuse mi"} 这种都会自动加0
多维数组
如何定义多维数组
int a[4][6] = {
{10, 20, 30, 30, 40, 60}, 第一种
{100, 200, 300, 400, 500, 600},
{1000, 2000, 3000, 4000, 5000, 6000},
{10000, 20000, 30000, 40000, 50000, 60000}
};
// 定义一个4行6列的二维数组, 会自动匹配到各行各列
int b[4][6] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24};
// 如果所赋值的数量可以与元素数量对应,第一维的数组长度可以不给出
int b[][6] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24};
数组的内存分析
多维数组在内存中不是以行列的形式存储,是线性存储的
数组的遍历
与一维数组差不多,之不过用俩个for循环变量,外层位表示多少个一维数组,内层表示一维数组的元素
数组的(行和列)怎么求
- 行 : sizeof arr/sizeof arr[0]
- 列: sizeof arr[0] / sizeof [0] [0]
函数
函数的基本语法
函数的声明
- 函数名是标识符
- 函数体就是大括号里面的
- 返回值和返回类型,返回值作为函数的计算结果
- 参数 分为形参和实参
函数的调用
- 函数名加小括号,表示函数的调用
- 函数表达式的值是函数的返回值,要是没有返回值的函数则没有值
返回值
- 有返回值: 返回类型与return右边表达式的值的类型一致;如果不一致会发生数据类型转换
- 没有返回值: ①函数体中没有return语句; ②return的右边是空的; 没有返回值的函数需要指定返回类型为 void
- return 除了能够设置函数返回值,还可以结束所在的函数
参数
- 形参 需要指定的数组类型和参数名 ,可以理解为一个没有值的变量,当别人调用的时候才会给她符实际的值
- 实际参数 当调用一个函数是传进去的参数,需要和形参的个数和类型一致
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)