1. 什么是数组
数组是一组相同类型元素的集合
2. 数组的分类
数组分为一维数组和二维数组
3. 一维数组
3.1 一维数组的创建和初始化
- 创建数组的语法
元素类型 数组名[常量表达式]
常量表达式定义数组的元素的个数
元素类型表示数组中每个元素的数据类型
注:在C99标准中,可以用变量定义数组的个数,但是不能初始化
- 例子
#include <stdio.h>
int main()
{
int arr1[3]; // 创建数组
int arr2[3] = {0,1,2}; // 数组的创建和初始化
}
3.3 一维数组的使用
数组的使用可以分为两种,下标操作符访问和指针访问
- 下标引用操作符访问
下标引用操作符 [], 使用下标访问数组元素,下标从0开始递增
- 例子
#include <stdio.h>
int main()
{
int arr1[3]; // 创建数组
int arr2[3] = {0,1,2}; // 数组的创建和初始化
int i = 0;
for (i = 0;i < 3; i++)
{
printf("%d ", arr2[i]); // 下标引用操作符访问数组
}
return 0;
}
- 指针访问
指针是存储内存单元地址的变量,数组名是数组首元素的地址
#include <stdio.h>
int main()
{
int arr1[3]; // 创建数组
int arr2[3] = {0,1,2}; // 数组的创建和初始化
int i = 0;
for (i = 0;i < 3; i++)
{
printf("%d ", arr2[i]); // 下标引用操作符访问数组
}
printf("\n");
// 指针访问数组
int* pa = arr2;
int i = 0;
for (i = 0; i < 3; i++)
{
printf("%d ", *(pa + i);
}
return 0;
}
3.3 一维数组在内存中的存储
一维数组在内存中是连续存储的,每一个数组元素根据数据类型占据字节,连续排列
#include <stdio.h>
int main()
{
int arr1[3]; // 创建数组
int arr2[3] = {0,1,2}; // 数组的创建和初始化
int i = 0;
for (i = 0; i < 3; i++)
{
printf("%p\n", arr[i]);
}
return 0;
}
int整型占据4个字节,每个元素占据4个字节,并连续排列
4. 二维数组
4.1 二维数组的创建和初始化
- 创建
#include <stdio.h>
int main()
{
// 二维数组的创建
int arr1[3][3];
char arr2[3][3];
float arr3[3][3];
}
- 初始化
#include <stdio.h>
int main()
{
// 二维数组的初始化
int arr1[3][3] = {1,2,3,4,5,6,7,8,9};
int arr2[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
}
4.2 二维数组的使用
二维数组和一维数组一样,可以使用下标引用操作符和指针进行访问
#include <stdio.h>
int main()
{
// 二维数组的初始化
int arr1[3][3] = { 1,2,3,4,5,6,7,8,9 };
int arr2[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
// 下标引用操作符
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 3; j++)
{
printf("%d ", arr1[i][j]);
}
printf("\n");
}
printf("\n");
// 指针访问
int* pa = arr1;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 3; j++)
{
printf("%d ",*(pa + j));
}
pa += 3;
printf("\n");
}
}
4.3 二维数组在内存中的存储
二维数组和一维数组一样,在内存中是连续存储的
#include <stdio.h>
int main()
{
// 二维数组的初始化
int arr1[3][3] = { 1,2,3,4,5,6,7,8,9 };
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 3; j++)
{
printf("arr[%d][%d] = %p", i,j,&arr1[i][j]);
printf("\n");
}
printf("\n");
}
}
标签:数组,int,++,arr2,arr1,printf From: https://www.cnblogs.com/xumu11291/p/16975816.html