Массивы могут распадаться на указатель на первый элемент. Фактически, когда вы передаете массив функции, не передавая его по ссылке, вы фактически передаете указатель на первый элемент.
В выражении b + h
, b
распадается на указатель на первый элемент, и b + h
- это арифметика указателя c, в результате которой указатель указывает на элемент с индексом h
. sort(b, h)
сортирует первые h
элементы, начиная с элемента, на который указывает b
, который является первой половиной массива. sort(b + h, n - h)
сортирует элементы n - h
, начиная с элемента, на который указывает b + h
, то есть вторая половина массива.