从零开始的c语言日记day37——数组指针练习

一、

取地址数组储存在了*p里,里面储存的是整个数组的地址但本质也是第一个元素的地址解引用后+1为4个字节所以就可以打印数组了。但一般不用这种方法

这样更方便一些

  • 打印多维数组

如果不用这样传参,用指针传参怎么做呢?

Main里函数的arr表示首元素地址也就是第一行的地址,第一行的地址是一个一维数组的地址。数组的地址放在数组指针,这个指针传到上面解释为指针(*p)指向5个元素,5个元素{5}为int类型,但因为下面只传了一行的地址所以函数只接收一行的地址。

Arr为一行元素地址那么+1就可以直接跳过一行到第二行

打印位置也可以改为p【i】【j】

P+1等一第一行的地址,当给他解引用*(p+i)和对第一行的地址解引用,相当于拿到了第一行,等于p{i}。*(p+i)相当于第i行的数组名arr{0},数组名相当于首元素地址,首元素地址就是起始位地址。

注意一维数组和二维是不一样的,一维数组的首元素地址是第一给,二维是第一行

练习

判断下列程序是什么?

Int arr[5]; arr是整形数组

Int *parr[10]; parr1是整形指针数组

Int (*parr2)[10]; parr2是数组指针

Int (*parr3[10])[5]; parr3是存放数组指针的数组

相关推荐
_Kayo_3 小时前
node.js 学习笔记3 HTTP
笔记·学习
CCCC13101636 小时前
嵌入式学习(day 28)线程
jvm·学习
星星火柴9367 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
小狗爱吃黄桃罐头7 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
艾莉丝努力练剑8 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA9 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
Cx330❀9 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
杜子不疼.9 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
小幽余生不加糖10 小时前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频
..过云雨10 小时前
01.【数据结构-C语言】数据结构概念&算法效率(时间复杂度和空间复杂度)
c语言·数据结构·笔记·学习