代码展示:
int InsertIntoA(int* p,int n,int post,int data){
int *q0 = &p[post]; //定义一个指针指向要插入位置后一个位置(数组下标以0开始)
int *q1 = &p[n - 2]; //定义一个指针指向数组倒数第二个元素
while(q0 <= q1){
*(q1 + 1) = *q1; //把指针所指位置元素赋给后一个元素,之所以把q1指向倒数第二个元素就是因为如果指向最后一个元素,则无法往后赋值
q1--;
}
*(q1 + 1) = *q1; //上面循环指到q0时,最后q1减了 1 ,要插入元素位置的值还没赋给下一位,所以再赋一次值
*q1 = data; //把要赋值的元素赋值到post - 1位置上
}
int main(){
int a[10] = {1,2,3,4,5,6,7,8};
InsertIntoA(a,10,5,0);
for(int i = 0;i < 10;i++){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}