数组中的元素按一定的顺序存放在一个连续的存储空间中
#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;
}