目录
前言
了解指针数组,数组指针,一维数组,二位数组,数组首元素地址,整个数组地址等......
一.一维数组
1.1 一维数组
一维数组是由一组有序的、同类数据元素组成的数据结构,它在程序设计中用于存储一系列相同类型的数据。具体有以下特点和操作:
- 定义和初始化:可以通过声明一个固定大小或动态分配内存的方式来创建一维数组,并在声明时或之后为其赋初值。
- 引用和遍历:通过索引访问数组中的元素,索引通常从0开始计数。可以使用循环结构来遍历数组中的所有元素。
- 排序:可以应用各种排序算法对数组元素进行排序,例如冒泡排序等。
- 多维数组关系:二维及多维数组可以看作是一维数组的多次叠加产生的,它们是在一维数组的基础上构建起来的更复杂的数据结构。
- 适用场景:一维数组适合保存同一类型的数据序列,如数列、名单等。二维数组适合保存不同类型的数据,如表格数据。
- 编程语言支持:不同的编程语言提供了不同的语法和功能来支持一维数组的操作。例如,在C++中,可以通过数组声明、初始化、访问等方式来使用一维数组;在Python中,可以使用列表(list)或Numpy库中的数组对象来表示一维数组,并进行各种操作。
1.2 一维数组案例
测试
1.3 字符指针数组
字符指针数组 :存储字符指针的一个数组
char* lines[5]
lines :数组名
char * [5] :数组存储类型
1.4 数组指针
注意数组指针和指针数组的区别
二.二维数组
2.1二维数组
二维数组是一种具有行和列的平面数据结构,它可以看作是一个表格,其中第一个下标表示行,第二个下标表示列。以下是关于二维数组的一些详细信息:
- 定义方式:在大多数编程语言中,二维数组的定义通常需要指定行数和列数,这可以通过常量表达式来指定。例如,在C语言中,可以使用
类型名 数组名[行数][列数]
的格式来定义一个二维数组。- 创建与初始化:二维数组的创建可以逐个元素进行,也可以在定义时直接初始化。初始化时,可以为每个元素指定值,或者使用嵌套的大括号来分组初始化行数据。
- 访问元素:访问二维数组中的元素时,需要提供两个索引,分别对应元素所在的行和列位置。
- 内存布局:在内存中,二维数组是连续存储的。通常情况下,行元素是连续存放的,即先存储第一行的所有元素,然后是第二行,依此类推。
- 应用场景:二维数组适用于需要以表格形式存储数据的场景,如矩阵运算、图像处理、棋盘类游戏等。
2.2 二维数组案例
测试
三.注意事项
这两种写法其实是一样的
#include<stdio.h> int main(int argc, char const *argv[]) { int arr[2][3] = {1,2,3,4,5,6}; int arr1[2][3] = {{1,2,3},{4,5,6}}; for(int i = 0; i < 6; i++) { printf("*(*(arr+%d))=%d ",i,*(*(arr)+i)); printf("*(*(arr1+%d))=%d\n",i,*(*(arr1)+i)); } return 0; }