实现两个函数,分别完成数组元素的插入和删除操作
注意问题:
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)=" "; } int main() { int a[10]={1,2,3,4,5};//注意定义数组长度!否则插入数据会产生越界,产生异常 int i; insert(a,5,3,1); for(i = 0;*(a+i)!=" ";i++) { printf("%d ",*(a+i)); } printf(" "); delect(a,6,5); for(i = 0;*(a+i)!=" ";i++) { printf("%d ",*(a+i)); } printf(" "); return 0; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: c++实现数组的插入和删除
- 下一篇: java 对数组进行插入删除修改