紧接上文
用指针来遍历数组的案例
指针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很重要 这边定义函数指针可以作为开头三个函数的指针因为函数原型相同所以可以共用