网站建设基本情况介绍,小制作小发明手工图片,企业网站系统官网,合肥微网站制作✨个人主页#xff1a; 熬夜学编程的小林
#x1f497;系列专栏#xff1a; 【C语言详解】 【数据结构详解】
一维数组
1、数组的概念
2、⼀维数组的创建和初始化
2.1、数组创建
2.2、数组的初始化
2.3、数组的类型
3、⼀维数组的使用
3.1、数组下标
3.2、数组元素…
✨个人主页 熬夜学编程的小林
系列专栏 【C语言详解】 【数据结构详解】
一维数组
1、数组的概念
2、⼀维数组的创建和初始化
2.1、数组创建
2.2、数组的初始化
2.3、数组的类型
3、⼀维数组的使用
3.1、数组下标
3.2、数组元素的打印
3.3、数组的输入
4、⼀维数组在内存中的存储
5、sizeof计算数组元素个数
总结 1、数组的概念 数组是⼀组相同类型元素的集合 从这个概念中我们就可以发现2个有价值的信息 • 数组中存放的是1个或者多个数据但是数组元素个数不能为0。 • 数组中存放的多个数据类型是相同的。 数组分为⼀维数组和多维数组多维数组⼀般比较多见的是⼆维数组。 2、⼀维数组的创建和初始化 2.1、数组创建 ⼀维数组创建的基本语法如下
type arr_name[常量值];| | | | | |
类型名 数组名 数组大小 存放在数组的值被称为数组的元素数组在创建的时候可以指定数组的大小和数组的元素类型。 • type 指定的是数组中存放数据的类型可以是 char、short、int、float 等也可以自定义的类型 • arr_name 指的是数组名的名字这个名字根据实际情况起的有意义就型。 • [] 中的常量值是用来指定数组的大小的这个数组的大小是根据实际的需求指定就行。
比如我们现在想存储某个班级的20人的数学成绩那我们就可以创建⼀个数组如下
int math[20]; 当然我们也可以根据需要创建其他类型和大小的数组
char ch[8];
double score[10]; 2.2、数组的初始化 有时候数组在创建的时候我们需要给定⼀些初始值值这种就称为初始化的。 那数组如何初始化呢数组的初始化⼀般使用大括号将数据放在大括号中。
//完全初始化
int arr[5] {1,2,3,4,5};
//不完全初始化
int arr2[6] {1};//第⼀个元素初始化为1剩余的元素默认初始化为0
//错误的初始化 - 初始化项太多
int arr3[3] {1, 2, 3, 4}; 2.3、数组的类型 数组也是有类型的数组算是⼀种⾃定义类型去掉数组名留下的就是数组的类型。 指针章节会详细讲解数组类型。 如下
int arr1[10];
int arr2[12];
char ch[5]; arr1数组的类型是 int [10] arr2数组的类型是 int[12] ch 数组的类型是 char [5] 3、⼀维数组的使用 学习了⼀维数组的基本语法⼀维数组可以存放数据存放数据的目的是对数据的操作那我们如何使用⼀维数组呢 3.1、数组下标 C语言规定数组是有下标的下标是从0开始的假设数组有n个元素最后⼀个元素的下标是n-1下标就相当于数组元素的编号如下
int arr[10] {1,2,3,4,5,6,7,8,9,10}; 在C语言中数组的访问提供了⼀个操作符 [] 这个操作符叫下标引⽤操作符。 有了下标访问操作符我们就可以轻松的访问到数组的元素了比如我们访问下标为7的元素我们就可以使用 arr[7] 想要访问下标是3的元素就可以使用 arr[3] ,如下代码
#include stdio.h
int main()
{int arr[10] {1,2,3,4,5,6,7,8,9,10}; printf(%d\n, arr[7]);//8printf(%d\n, arr[3]);//4return 0;
} 输出结果 3.2、数组元素的打印 接下来如果想要访问整个数组的内容那怎么办呢 只要我们产生数组所有元素的下标就可以了那我们使用for循环产生0~9的下标接下来使用下标访问就行了。 如下代码
#include stdio.h
int main()
{int arr[10] {1,2,3,4,5,6,7,8,9,10}; int i 0;for(i0; i10; i){printf(%d , arr[i]);}return 0;
} 输出的结果 3.3、数组的输入 明白了数组的访问当然我们也根据需求自己给数组输入想要的数据如下
#include stdio.h
int main()
{
int arr[10] {1,2,3,4,5,6,7,8,9,10}; int i 0;for(i0; i10; i){scanf(%d, arr[i]);//在每个下标中插入数据}for(i0; i10; i){printf(%d , arr[i]);//打印全部数据}return 0;
} 输入输出结果 此处为一次输入10个数值也可以按回车一个个输入。在scanf一弹有详细讲解。
4、⼀维数组在内存中的存储 有了前面的知识我们其实使用数组基本没有什么障碍了如果我们要深入了解数组我们最好能了解⼀下数组在内存中的存储。 依次打印数组元素的地址
#include stdio.h
int main()
{int arr[10] {1,2,3,4,5,6,7,8,9,10}; int i 0;for(i0; i10; i){printf(arr[%d] %p\n, i, arr[i]);}return 0;
} 此处结果为VS x86环境结果指针打印的数值为16进制。
%p是指针占位符打印地址在printf弹有详细讲解占位符。
此处用到指针只是为了证明一维数组是连续存储的指针在后序会详细讲解。 输出结果我们看看
从输出的结果我们分析数组随着下标的增长地址是由小到大变化的并且我们发现每两个相邻的元素之间相差4因为⼀个整型是4个字节。所以我们得出结论数组在内存中是连续存放的。这就为后期我们使用指针访问数组奠定了基础。 5、sizeof计算数组元素个数 在遍历数组的时候我们经常想知道数组的元素个数那C语言中有办法使用程序计算数组元素个数吗 答案是有的可以使用sizeof。 sizeof 中C语言是⼀个关键字是可以计算类型或者变量大小的其实 sizeof 也可以计算数组的大小。 比如
#include stdio.h
int main()
{int arr[10] {0};printf(%d\n, sizeof(arr));return 0;
} 这里输出的结果是40计算的是数组所占内存空间的总大小单位是字节。 我们又知道数组中所有元素的类型都是相同的那只要计算出⼀个元素所占字节的个数数组的元素个数就能算出来。这里我们选择第⼀个元素算大小就可以。
#include stdio.h
int main()
{int arr[10] {0};printf(%d\n, sizeof(arr[0]));//计算⼀个元素的⼤⼩单位是字节return 0;
} 接下来就能计算出数组的元素个数
#include stdio.h
int main()
{int arr[10] {0};int sz sizeof(arr)/sizeof(arr[0]);printf(%d\n, sz);return 0;
} 这里的结果是10表示数组有10个元素。 以后在代码中需要数组元素个数的地方就不用固定写死了使用上面的计算不管数组怎么变化计算出的大小也就随着变化了。
总结 本篇博客就结束啦谢谢大家的观看如果公主少年们有好的建议可以留言喔谢谢大家啦