您的位置:首页 > 其它

实现两个函数,分别完成数组元素的插入和删除操作

2015-07-05 18:21 381 查看
注意问题:

1.定义一个数组,开辟一段内存空间,这段内存空间并不会像被围墙围住一样被封死,合理地利用这个数组,需要程序员自己控制。只定义了这段空间,只有这段空间内的数据对于你当前的程序是合理的,越界的话就不知道你访问到哪里去了,它可能属于机器上任何一个运行着的进程,因为机器上的进程使用的都是这一条内存。如果你修改了你越界访问到的数据,可能会造成未知的错误。

2可以通过sizeof()获得某个类型的大小,但是程序运行时不会去检查下标是否越界。这样的检查是需要耗费资源的,理想的情况下,这样做对于程序运行也没有意义。C/C++没有这样做这样的检查,C# 、java 都是有这样的检查的
#include<stdio.h>
void insert(int *a,int n,int p,int x)
{
int i;

for(i = n;i > p;i--)
{
*(a+i)=*(a+i-1);
}
*(a+p) = x;
}

void delect(int *a,int n,int p)
{
int i;
for(i = p; i < n;i++)
{
*(a+i) = *(a+i+1);
}
*(a+i)='\0';
}
int main()
{
int a[10]={1,2,3,4,5};//注意定义数组长度!否则插入数据会产生越界,产生异常
int i;
insert(a,5,3,1);
for(i = 0;*(a+i)!='\0';i++)
{
printf("%d ",*(a+i));
}
printf("\n");
delect(a,6,5);
for(i = 0;*(a+i)!='\0';i++)
{
printf("%d ",*(a+i));
}
printf("\n");

return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: