当前位置:首页 » 编程语言 » c语言数组的删除

c语言数组的删除

发布时间: 2024-05-06 20:52:33

1. c语言数组元素的删除与增加。

C语言中的数组本质上是在计算机内存中分配的连续空间。

如果需要对元素进行插入和删除,并不能直接将内存中为该数组分配的空间进行插入/新增和删除,而是只能通过数据复制的方式将本来不在这个位置的元素进行移动,看起来像是元素的前移和后移。

举个例子吧:整型数组(1, 2, 3, 4, 5),如果要把2删除,那么可以将3,4,5分别向前移动,变成(1, 3, 4, 5, 5)。由于数组长度分配以后不会变化,因此最后一个多余的5实际上并不能删掉,它只是表示无意义的位置。因此对于编程人员来讲,需要另一个参数来记录这个数组中你认为有用的元素是前多少个。

值得注意的是,如果数组长度不足以保存新的元素时,是无法动态地增加数组长度的。如果非要这么做,必须要在数组分配时保证数组大小足够大。这也就是一些新手经常将数组长度设置为1000,10000的原因。

回到这个问题:

//预定义的数组,长度为20
intarray[20]={0};
//数组当前有效长度
intarrayLen=0;

//如果不是全局数组,则需要将数组指针和数组长度指针传入进行修改
voidinsertArray(intnewElement,intindex)
{
//这里没有做数组长度的检验,你需要自己完成

inti;
for(i=arrayLen++;i>index;)
array[i--]=array[i-1];//后移

array[index]=newElement;
}

voiddeleteArrayElement(intindex)
{
for(;index<arrayLen;)
array[index++]=array[index+1];//前移。要删除的位置会被直接覆盖

arrayLen--;
}

2. C语言中怎么删除数组中的一个元素

方法:

删除就是将其下标所在位置的中的内容置为空(也就是0),然后从此位置开始,后面的内容前移,再把最后那个位置的置为空(就是0)。

前移无非就是 类似 arr[ i - 1] = arr[ i ] 这个意思。

3. c语言:从数组中删除数据怎么做

#include<stdio.h>
#define N 10
void main( )
{
int a[N] , num ,i , *p , n=N;
int j;

/*输入N个数到数组a中;*/
for(i=0;i<n;i++)
{
scanf(“%d”,&num);
a[i]=num;
}

/*在数组a中删除指定的数num;*/
for(i=0;i<n;i++)
{
if(a[i] == num)
{
//a[i]=a[n];//如果不保留原数组里的顺序,此一句即可代替下边2行语句,同时省掉变量j

for(j=i;j<n-1;j++)
a[j]=a[j+1];

n--;
}
}

/*输出删除了num后的数组a;*/
for(i=0;i<n;i++)
printf("%d ",a[i]);

getchar();
}

热点内容
哈利波特不同服务器有什么不同 发布:2024-11-27 22:33:45 浏览:77
锁ip服务器 发布:2024-11-27 22:31:48 浏览:176
脚本刷精粹 发布:2024-11-27 22:30:31 浏览:991
电脑定时清理文件的脚本 发布:2024-11-27 22:27:49 浏览:996
安卓系统传奇哪个好玩 发布:2024-11-27 22:26:17 浏览:253
oracle存储过程重命名 发布:2024-11-27 22:12:51 浏览:547
串口服务器几个ip 发布:2024-11-27 21:58:21 浏览:325
麦芒5脚本 发布:2024-11-27 21:45:33 浏览:848
dnf龙猫脚本 发布:2024-11-27 21:45:15 浏览:959
macoutlook存储位置设置 发布:2024-11-27 21:35:15 浏览:810