图解c/c++多级指针与“多维”数组,拿捏住了

目录

嗨,这里是狐狸~~

首先,先声明一些常识,如果你对这些常识还不理解,请先去弥补一下基础知识:

 一、一维数组与数组指针​

二、二维数组与数组指针​

三、三维数组与数组指针​

四:多级指针​

总结​


青春,在嘲笑着我们。

嗨,这里是狐狸~~

今天是2022年1月18日,突然发现我们也快放假了,想想都开心,放假的时候文章的更新就会放缓很多了,趁现在有时间,多给大家分享点知识,好了,今天继续给大家讲指针以及数组的知识。

指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的。其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法,理解多级指针和“多维”数组完全可以像理解一级指针和一维数组那样简单。

首先,先声明一些常识,如果你对这些常识还不理解,请先去弥补一下基础知识:

1、实际上并不存在多维数组,所谓的多维数组本质上是用一维数组模拟的。
2、数组名是一个常量(意味着不允许对其进行赋值操作),其代表数组首元素的首地址。
3、数组与指针的关系是因为数组下标操作符[],比如,int a[3][2]相当于*(*(a+3)+2) 。
4、指针是一种变量,也具有类型,其占用内存空间大小和系统有关,一般32位系统下,sizeof(指         针变量)=4。
5、指针可以进行加减算术运算,加减的基本单位是sizeof(指针所指向的数据类型)。
6、对数组的数组名进行取地址(&)操作,其类型为整个数组类型。
7、对数组的数组名进行sizeof运算符操作,其值为整个数组的大小(以字节为单位)。
8、数组作为函数形参时会退化为指针。

 一、一维数组与数组指针

  假如有一维数组如下:

  char a[3];

        该数组一共有3个元素,元素的类型为char,如果想定义一个指针指向该数组,也就是如果想把数组名a赋值给一个指针变量,那么该指针变量的类型应该是什么呢?前文说过,一个数组的数组名代表其首元素的首地址,也就是相当于&a[0],而a[0]的类型为char,因此&a[0]类型为char *,因此,可以定义如下的指针变量:   

 char * p = a;//相当于char * p = &a[0]

以上文字可用如下内存模型图表示。

  • 12
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值