文章目录
思维导图:
一维数组
基本概念
数组:由数据类型相同的一系列元素组成。(简单来说:装同一种类型东西的容器)
注:一个存数据的东西,那么,它的操作无非就是,增删改查。
声明
数组的声明跟普通变量有什么区别呢?
先来看一下声明的语法格式:
类型 数组名 [数组长度];
见下面操作:
int arr1[10]; // 内含10个int类型元素的数组
char arr2[10]; // 内含10个char类型元素的数组
float arr3[10]; // 内含10个float类型元素的数组
double arr4[10]; // 内含10个double类型元素的数组
所见,也没有什么太大的区别,只是多了个方括号( [ ] ),这个方括号表明了,arr1,arr2 …是数组,方括号中的数字表示数组的长度。
注:数组的下标是从零开始。数组长度只能是整数常量
初始化数组
额,不知道你们有没有这么一个疑问,假设它是一个容器,就像,我在超市里面买一个杯子,那我这个杯子,无论清洗还是不清洗,只要这个杯子不损坏,我都可以使用。那么这个数组,不能同理嘛?
顺着这个思路,来进行往下走,如果数组不初始化,直接使用,会发生什么样的事情呢?
见下面操作:
如上图所示:
如果没有初始化,这个容器中的数值,都是一些垃圾值。(在12行,设置了断点)
那继续看一下,对一个数组进行初始化,这个图会有什么发生变化(把数组中所有的数据为0)?
见下图:
可见,如果不初始化,数组,那么这个数组是危险的。
OK,说完为什么要进行初始化,那么下面,来看初始化的几种方式:
// 编译器会自动将数组中的所有元素初始化为0
int arr1[10] = {
0};
// 这时,编译器会自动计算数组长度,并对其进行初始化
int arr2[] = {
1, 2, 3 };
// 数组的前三个元素会被赋值为1,2,3,剩下的元素会被自动初始化为0
int arr3[10] = {
1, 2, 3 };
访问数组中的元素
学会了装东西,那么接下来的操作,就是取东西。
在数组中,每个元素的都是有标号的,前面有讲过,数组的下标是从零开始。
下面直接莽:
#define _CRT_SECURE_NO_WARNINGS// 强行除去安全检查
#include <stdio.h>
#include <stdlib.h>
int main()
{
// 声明一个整型的数组
int arr[5] = {
1, 2, 3, 4, 5 };
/*
在这里,偷懒一下,直接使用循环
*/
// 遍历数组
for (int i = 0; i < 5; i++) // 这里知道数组的大小,直接填写
{
printf("%d ", arr[i]);
}
printf("\n");
system("pause");
return 0;
}
运行结果:
那,假设输入一个错误的下标,这时程序会怎么样呢?
见下面操作:
#define _CRT_SECURE_NO_WARNINGS