#include
#define Size 10 //定义数组的大小
typedef struct line
{
int data[Size];
int Length; //当前数组中数据的个数
}Line;
void Creat(Line L, int len); //第一个形参为线性表,第二个形参为要输入数据的个数
void Print(Line L, int len); //输出数据
int main()
{
Line lin;
Creat(lin, 5);
Print(lin, 5);
getchar();
getchar();
return 0;
}
函数调用是值传递,当调用Create 函数时,其实时复制了一份Line数据到形参L,这样实参里的值不会改变。
void Creat(Line L, int len)
参考:
#include <stdio.h>
#define Size 10 //定义数组的大小
typedef struct line
{
int data[Size];
int Length; //当前数组中数据的个数
}Line;
void Creat(Line * L, int len){ //第一个形参为线性表,第二个形参为要输入数据的个数
for(int i=0;i<len;i++)
{
L->data[i]=i;
}
return;
}
void Print(Line L, int len){ //输出数据
for(int i=0;i<len;i++)
{
printf("Line [%d]=%d\n", i, L.data[i]);
}
}
int main()
{
Line lin;
Creat(&lin, 5);
Print(lin, 5);
getchar();
getchar();
return 0;
}
void Creat(Line L, int len);
这里,要使用指针的指针,才能将动态创建的传递回来
void Creat(Line ** L, int len)
{
*L = (Line *)malloc(sizeof(Line));
...
}
imt main()
{
Line * pline;
Creat(&pline, 10);
...
}