C语言复习——一个有意思的使用指针形参的函数

复制代码
int sump(int * start, int * end)

{

    int total = 0;

    while(start < end)

    {

        total += *start;            //1

        start++;                   //2

    }

    return total;

}

其中,1、2两句可以合并为total += *start++;因为因为++与*运算优先级是同等的,但结合律是从右往左的,故会先进行start++,再进行*start。简单讲,指针先指向后递增,等同于*(start++)。

另外采用*start++意味着会先把指针指向位置的值加到total上,再递增指针。若采用*++start,则反过来,先递增指针的,在使用指针指向位置上的值加到total上。简单讲,指针先递增后指向。

(*start)++则表示指针指向的值进行递增。指针指向一直不变,为start的地址。变化的仅是该地址上的值。

注意,只有当start为指针变量时,才有start++这样的表达式。

另外,数组与指针是相互联系的,可以相互替换的。一维与多维均可。

复制代码
pr = arr;
arr[size] 等同于 *(pr + size)    //一维数组
arr[2][3] 等同于 *(*(pr + 2) + 3) 等同于 pr[2][3] //二维数组
相关推荐
白鲸开源7 分钟前
(三)ODS/明细层落地设计要点:把数据接入层打造成“稳定可运维”的基础设施
大数据·数据结构·数据库
隔壁小邓22 分钟前
Spring-全面讲解
java·后端·spring
苏纪云26 分钟前
蓝桥杯知识点——day2
数据结构·算法·蓝桥杯
Wect27 分钟前
LeetCode 52. N 皇后 II:回溯算法高效求解
前端·算法·typescript
JustMove0n34 分钟前
互联网大厂Java面试全流程问答及技术详解
java·jvm·redis·mybatis·dubbo·springboot·多线程
iFlyCai40 分钟前
数据结构与算法之希尔排序
数据结构·算法·排序算法
SimonKing43 分钟前
5分钟学会!把代码从本地推送到 GitHub,就是这么简单
java·后端·程序员
玹外之音43 分钟前
Spring AI 11 种文档切割策略全解析
java·spring·ai编程
lcreek1 小时前
LeetCode2208. 将数组和减半的最少操作次数、LeetCode2406.将区间分为最少组数
python·算法
shehuiyuelaiyuehao1 小时前
算法1,移动零
数据结构·算法·排序算法