做实体店优惠券的网站,工作流程管理系统说明书,无锡网站建设优化,wordpress在本地建站数组 一.数组的概念二. 一维数组的创建和初始化2.1数组的创建2.2数组的初始化错误的初始化 2.3 数组的类型 三. 一维数组的使用3.1数组的下标3.2数组元素的打印3.2数组元素的输入 四. 一维数组在内存中的存储五. 二维数组的创建5.1二维数组的概念5.2如何创建二维数组 六.二维数… 数组 一.数组的概念二. 一维数组的创建和初始化2.1数组的创建2.2数组的初始化错误的初始化 2.3 数组的类型 三. 一维数组的使用3.1数组的下标3.2数组元素的打印3.2数组元素的输入 四. 一维数组在内存中的存储五. 二维数组的创建5.1二维数组的概念5.2如何创建二维数组 六·.二维数组的初始化6.1不完全初始化6.2完全初始化6.3按行初始化6.4 初始化时省略行但是不能省略列 七.二维数组的使用7.1 二维数组的输入和输出 八. 二维数组在内存中的存储最后还有一个题目就是**多个字符从两端移动向中间汇聚** 一.数组的概念
数组是⼀组相同类型元素的集合 1.数组中存放的是1个或者多个数据但是数组元素个数不能为0。 2.数组中存放的多个数据类型是相同的。 二. 一维数组的创建和初始化
2.1数组的创建
type arr_x[n]//n是数组元素个数存放在数组的值被称为数组的元素数组在创建的时候可以指定数组的大小和数组的元素类型。 上述代码中的type指的是数组中存放的数据类型数据类型可以是char, short,int等等…
arr_x指的是数组名的名字 []是下标引用操作符
比如有20个整型元素存放在数组中此时可以创建一个一维数组
int arr[20]当然其他类型也可以比如
char ch[20];
float core[10];2.2数组的初始化 如何对数组进行初始化呢下面就来解释 int arr[5]{1,2,3,4,5};上述代码就是数组的完全初始化 int arr1[5]{0};上述代码就是数组的不完全初始化也就是第一个元素为1其余未初始化的数据默认就是0 错误的初始化
int a[2]{0,1,23,4,5};上述代码会报错因为设置的初始值太多 2.3 数组的类型 数组也是具有类型的数组也算是一种自定义类型把数组名去掉剩下的就是数组类型 比如
char arr1[20];
int arr2[30];arr1数组的类型就是char [20] arr2数组的类型就是 int [30]
三. 一维数组的使用
3.1数组的下标 C语⾔规定数组是有下标的下标是从0开始的假设数组有n个元素最后⼀个元素的下标是n-1下标就相当于数组元素的编号如下 int arr[10] {1,2,3,4,5,6,7,8,9,10};在C语⾔中数组的访问提供了⼀个操作符[] 这个操作符叫下标引用操作符
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数组元素的打印 这里我们直接访问数组下标就可以实现数组打印 #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.2数组元素的输入 这里我们用for‘循环来实现数组的输入 int main()
{int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int i 0;for (i 0; i 10; i){scanf(%d, arr[i]);}for (i 0; i 10; i){printf(%d , arr[i]);}return 0;
}
下面是运行结果
四. 一维数组在内存中的存储
下面一段代码将打印数组的地址
int main()
{int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int i 0;for (i 0; i 10; i){printf(arr[%d] %p\n , i, arr[i]);}return 0;
}下面是运算结果 从输出的结果来看数组随着下标的增⻓地址是由小到大变化的并且我们发现每两个相邻的元素之间相差4因为⼀个整型是4个字节。所以数组在内存中是连续存放的。 五. 二维数组的创建
5.1二维数组的概念 如果我们把⼀维数组做为数组的元素这时候就是⼆维数组⼆维数组作为数组元素的数组被称为三维数组⼆维数组以上的数组统称为多维数组。 5.2如何创建二维数组
type arr_zy[n][n]//n是常量//如
int arr_zy[3][7]
double arr_zy1[5][6]解释上述代码中的信息 3代表三行 7代表每行有7个元素 int表示数组的每个元素都是整型 arr_zy数组名可以自定义 六·.二维数组的初始化 在创建变量或者数组的时候给定⼀些初始值被称为初始化。 6.1不完全初始化
int arr_zy[2][4]{123}
double arr_zy1[3][6]{652}6.2完全初始化
int arr3[3][5] {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};6.3按行初始化
int arr4[3][5] {{1,2},{3,4},{5,6}};6.4 初始化时省略行但是不能省略列
int arr6[][5] {1,2,3,4,5,6,7};
int arr7[][5] {{1,2}, {3,4}, {5,6}};七.二维数组的使用
7.1 二维数组的输入和输出 我们只要能够按照⼀定的规律产⽣所有的⾏和列的数字就行以上⼀段代码中的arr数组为例行的选择范围是0~ 2列的取值范围是0~4所以我们可以借助循环实现⽣成所有的下标 int main()
{int arr[3][5] { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };int i 0;//遍历⾏//输⼊for (i 0; i 3; i) //产⽣⾏号{int j 0;for (j 0; j 5; j) //产⽣列号{scanf(%d, arr[i][j]); //输⼊数据}}//输出for (i 0; i 3; i) //产⽣⾏号{int j 0;for (j 0; j 5; j) //产⽣列号{printf(%d , arr[i][j]); //输出数据}printf(\n);}return 0;
}下面是运行结果
八. 二维数组在内存中的存储 可以打印出数组所有元素的地址的。代码如下 int main()
{int arr[3][5] { 0 };int i 0;int j 0;for (i 0; i 3; i){for (j 0; j 5; j){printf(arr[%d][%d] %p\n, i, j, arr[i][j]);}}return 0;
}
运行结果如下
最后还有一个题目就是多个字符从两端移动向中间汇聚
#includestring.h
#includetime.h
#includestdio.h
#includeWindows.h
int main()
{char arr1[] welcome to zy space;char arr2[] #######################;int left 0;int right strlen(arr1) - 1;printf(%s\n, arr2);while (left right){Sleep(1000);arr2[left] arr1[left];arr2[right] arr1[right];left;right--;printf(%s\n, arr2);}return 0;
}运行结果