简单一维数组的代码实现

数组中的元素按一定的顺序存放在一个连续的存储空间中

#include <stdio.h>
#include <stdlib.h>
//数组的简单操作代码
//为了便于理解,简化操作,作了如下删减
// 1.只是操作一维数组
//2.只有核心代码,没有进行健壮性处理,即没有返回错误信息这些代码 
//定义一维数组
typedef struct array
{
	int m;
	int *array;
}Array;
//创建数组
void Create(Array *a,int m) 
{
	a->m = m;
	a->array = (int*)malloc(m*sizeof(int));
	printf("创建数组成功!\n");
}
//销毁数组
void Destory(Array *a)
{
	free(a->array);
	printf("销毁数组成功!\n");
}
//查询数组元素,并赋值给x
void Find(Array a,int i,int *x)
{
	*x = *(a.array + i*sizeof(int));
}
//将x赋值给数组元素
void Store(Array *a,int i,int x)
{
	*(a->array + i*sizeof(int)) = x;
}
//将A数组元素复制给B数组
void Copy(Array a,Array *b)
{
	int i,value;
	for(i=0;i<a.m;i++)
	{
		Find(a,i,&value);
		*(b->array + i*sizeof(int)) = value;
	}
}
//输出数组
void Output(Array a)
{
	int i,value;
	printf("输出数组为:");
	for(i=0;i<a.m;i++)
	{
		Find(a,i,&value);
		printf("%d ",value);
	}
	printf("\n");
}
int main(void)
{
	Array a,b;
	int i;
	Create(&a,2);
	Create(&b,2);
	for(i=0;i<2;i++)
		Store(&a,i,1);
	Output(a);
	Copy(a,&b);
	Output(a);
	Output(b);
	Destory(&a);
	Destory(&b);
	return 0;	
} 
上一篇:为什么会有这么多类型呢


下一篇:【C语言】指针和一维数组的关系