学习c语言的第九天

紧接上文

用指针来遍历数组的案例

指针Task:

用指针来表示将输入的数组逆序排序;

想要将数组逆序排序主要是要知道算法

以下是算法图

二维数组的指针部分相关内容

        在像 *(arr + 1) + 1 这样的复杂表达式里,* 虽然也是解引用操作符,但由于涉及到指针运算和数组名的退化规则,它的作用可能会和直接对指针解引用有所不同。

        对于二维数组 arr中  arr + 1  是指向第二个子数组的指针,*(arr + 1) 对这个指针解引用后得到第二个子数组,但子数组名在表达式里会退化为指向该子数组首元素的指针,所以 *(arr + 1) 实际上还是一个指针(地址)。

二维数组的地址写法应用

地址 &arr[i][j]  值arr[i][j];

地址 arr[i]+j  值*(arr[i]+j);

地址*(arr+i)+j 值*(*(arr+i)+j);

这三个表达的意思是一样的但是都要会面试会用到;

数组指针的概念

        Tips:这边是++p2是指针偏移1个位置  ++p2是先自增在输出结果 符合情境

数组指针就是偏移的时候跨越的是一个数组 比如arr+0  arr+1 偏移的是一个数组

案例:输入行和列取出二维数组中的值

函数指针的案例:调用和定义

函数名就是函数的地址

函数指针指向函数需要类型相同

案例:

这个案例比较吃算法逻辑  这边switch很重要 这边定义函数指针可以作为开头三个函数的指针因为函数原型相同所以可以共用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

热爱嵌入式的涛涛同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值