c++这个代码的第16行是怎么运行的

刚入门的发问,这个代码的第16行是怎么运行的,不太懂。
希望各位积极帮忙,谢谢啦

img

16 行考了两个知识点:

  1. 递归
  2. 逗号运算符

递归没什么问题,就是merge_sort() 运行到16 行,系统PC 指针又再次跳到 merge_sort,只不过参数变了
逗号运算符,是从左到右运行的,都会执行一遍
你这里相当于连续两次的递归调用

初学者如果递归过程不理解不必强求,你只要知道这个函数的功能是对从l到r进行排序就可以,所以16行意思就是对l到mid,mid+1到r进行排序,只要递归思路没错,肯定能实现

递归
就是自己调用自己,套娃

可以查看递归的用法,这个是递归入口

这是一个递归