请问数组是如何完成对a[j]之后的元素完成删除的? 困惑我好几天了

数组元素的删除是如何完成的?
而且不是说形参无法改变实参的值么?图片说明

这是两个不同的概念,删除数组元素是对数组本身进行操作,形参传递是方法调用时的传参

之后的元素删除其实不需要删除,你直接不访问后面的就可以。
非要操作,可以把后面的设置为0
void delarr(int a[], int n, int m) //删除长度n的数组m后的元素
{
for (int i = m; i < n; i++) a[i] = 0;
}
删除开头或者中间,才需要操作(把后面的元素向前拷贝)