数组的定义和初始化,包括一维数组和二维数组的基本形式。
在 C 语言中,数组是一种重要的数据结构,用于存储一组相同数据类型的元素。
一维数组
定义:一维数组是最简单的数组形式,它可以看作是一个线性排列的元素集合。
定义一维数组的一般形式为:数据类型 数组名[数组长度];
“数据类型” : int、float、char 等基本数据类型,也可以是自定义的数据类型;
“数组名” :你为这个数组起的名字,遵循标识符的命名规则;
“数组长度” :表示数组中元素的个数,它必须是一个常量表达式(即值在编译时就确定的表达式)。
范例:
例子1:存储员工年龄
例子2:存储学生考试成绩(精确到小数点后一位)
例子3:存储密码
开头:
初始化密码:
验证密码:
整体展示:
如果验证失败,可以连续输入,不会直接退出:
可以验证的最大次数为三次,如果三次都错误,那么就会直接退出;
如果在限制次数内修改成功,则会出现这样的结果;
结果1:
结果2:
例子4:存储商品价格
用于存储 25 种商品的价格;
如果输入25种,例子太长了,我们就以6种价格为例吧二维数组,这样短一点,看起来也比较直观;
所以这个地方使用 [];
定义了一个能存储 25 个双精度浮点数的数组, 是宏定义,方便后续修改商品数量。
这里就可以直接修改数量了。
例子5:存储一周每天的天气状况
输入错误的结果:
输入正确的结果:
这里要求是大写字母“S和“R”,所以这里要是输入错误,结果也是错误的。
如果想要实现的结果是:统计晴天和雨天的结果二维数组,则应该这样编写;
如果想要实现的结果是:看看晴天多还是雨天多,则应该这样编写;
晴天和雨天的次数,并比较晴天多还是雨天多;
学到这里,我觉得编写代码真的很有趣,它能实现你想要的功能,只要你能想象出来,并且有一定的逻辑思维,那么就能写出自己都觉得很神奇的代码。
初始化:在定义数组时,可以同时对数组元素进行初始化。
初始化的方式有以下几种:
逐个初始化:将数组元素的值依次用花括号括起来,中间用逗号分隔。
部分初始化:只对数组的前几个元素进行初始化,未初始化的元素会被自动初始化为 0(对于数值型数组)或 ''(对于字符型数组)。
省略数组长度初始化:在初始化列表中给出所有元素的值时,可以省略数组长度,编译器会根据初始化列表中元素的个数自动确定数组的长度。
这个我们上次讲过了,这里就不再重复了。
二维数组定义:二维数组可以看作是一个由多个一维数组组成的数组,它在逻辑上呈现出一种表格或矩阵的形式。定义二维数组的一般形式为:
数据类型 数组名[行数][列数];
假设一个班级有 4 个学生,每个学生需要记录 3 门课程(语文、数学、英语)的成绩。
其中,“行数” 和 “列数” 都必须是常量表达式,分别表示二维数组的行数和列数。
详细分析:
初始化:二维数组的初始化也有多种方式:
按行初始化:
部分按行初始化:
不按行初始化:
通过以上定义和初始化的方式,你可以根据具体的需求在 C 语言中灵活地使用一维数组和二维数组来存储和处理数据。
例如:int arr[5] = {1, 2, 3, 4, 5};(一维数组初始化)int [3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};(二维数组初始化)
数组元素的访问方式,通过下标进行访问,下标从 0 开始。
二维数组深入
二维数组在内存中的存储方式:按行优先存储。
对于 int [3][4],内存中先存储第一行的 4 个元素,然后是第二行,最后是第三行。
二维数组作为函数参数函数声明形式:void func(int arr[][4], int rows, int cols);(假设列数为 4)解释为什么列数必须指定,而行数可以省略。
实现一个计算二维数组元素总和的函数:
字符串基础字符串的本质:字符串实际上是字符数组,以 '' 作为字符串结束标志。
char str[] = "Hello"; 实际上在内存中存储为 'H' 'e' 'l' 'l' 'o' ''。
字符串的定义和初始化
方式一:char str1[] = "Hello";方式二:char str2[10] = {'H', 'e', 'l', 'l', 'o', ''};
字符串的输入输出使用 和 scanf 函数,%s 格式说明符用于字符串的输入输出。字符串处理函数简介(只介绍功能,不深入实现):计算字符串长度(不包括 '')。:字符串复制。:字符串连接。:字符串比较。课堂练习编写一个函数,接收一个二维数组和其行数、列数,返回数组中最大的元素值。编写程序,输入两个字符串,比较它们的长度是否相等,如果不相等,输出较长的字符串。#在头条记录我的2025#
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh