c语言 数据结构
int sxbsc(int i, int v[], int *p) {
int j,n; n=*p;
if((i<1) || (i>n))
return (0);
for(j=i;j<n;j++)
v[j-1]=v[j];
*p=--n;
return (1);
}
这是我们的数据结构课上用C语言编写的一个程序的一部分,是删除一个元素的,我不太懂,大家帮我看看,其中的n.p的意思,对程序做一简单的介绍!
谢谢大家啦!
程序代码:int sxbsc(int i, int v[], int *p)
{
int j,n;
n=*p;
//根据你的程序,你的j用来进行删除操作的,n用来接收传进来的数组长度*p
if((i<1) || (i>n))
return (0);
//上一个if语句用于判断需要删除那个元素的下标是否越界,若越界,返回值0
for(j=i;j<n;j++)
v[j-1]=v[j];
//当下标未越界,用第j-1个元素覆盖掉需要删除的第j个元素,循环覆盖
*p=--n;
//完成删除操作后,使数组长度自减1
return (1);
}因为数组是地址传递,所以可以完成覆盖操作。