指针数组/数组指针详解

目录

前言

一.一维数组

1.1 一维数组

 1.2 一维数组案例

1.3 字符指针数组

1.4 数组指针

二.二维数组

2.1二维数组

2.2 二维数组案例

三.注意事项


前言

了解指针数组,数组指针,一维数组,二位数组,数组首元素地址,整个数组地址等......

一.一维数组

1.1 一维数组

一维数组是由一组有序的、同类数据元素组成的数据结构,它在程序设计中用于存储一系列相同类型的数据。具体有以下特点和操作:

  1. 定义和初始化:可以通过声明一个固定大小或动态分配内存的方式来创建一维数组,并在声明时或之后为其赋初值。
  2. 引用和遍历:通过索引访问数组中的元素,索引通常从0开始计数。可以使用循环结构来遍历数组中的所有元素。
  3. 排序:可以应用各种排序算法对数组元素进行排序,例如冒泡排序等。
  4. 多维数组关系:二维及多维数组可以看作是一维数组的多次叠加产生的,它们是在一维数组的基础上构建起来的更复杂的数据结构。
  5. 适用场景:一维数组适合保存同一类型的数据序列,如数列、名单等。二维数组适合保存不同类型的数据,如表格数据。
  6. 编程语言支持:不同的编程语言提供了不同的语法和功能来支持一维数组的操作。例如,在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;
}

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锻炼²

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值