从零开始的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 arr5; arr是整形数组

Int *parr10; parr1是整形指针数组

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

Int (*parr310)5; parr3是存放数组指针的数组

相关推荐
dadaobusi3 小时前
学习:RV lkvm SBI
java·学习·spring
djarmy5 小时前
MAIN.c(1): warning C318: can’t open file ‘STC8G.H’ 报错 解决 分析
c语言·开发语言·mongodb
传奇开心果编程5 小时前
【Xilem 0.4 基础语法学与练】第一课:从零到计数器
学习·rust·前端框架
David猪大卫6 小时前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
李永奉6 小时前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
z23456d6 小时前
第四十一天学习心得
学习
sunflower#7 小时前
Go学习第五阶段:接口、泛型与包设计,实现可替换的通讯录存储层
学习·oracle·golang
dadaobusi7 小时前
RV设备透传:主线尚未支持
学习
xqqxqxxq8 小时前
AI Agent学习:主动工具发现(李博杰《深入理解 AI Agent》4.8观后总结)
人工智能·学习
爱吃苹果的日记本9 小时前
数据结构第一课
c语言·数据结构·数据库·学习·c#