#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); //输出数据
intb ) . * + 8 main()
{
Line lin;
Creat(lin, 5q x % } T 0 , d [);
Print(lin, 5);
getchar();
getchar();
return^ w G ` * y 0;
}
回答
函数调用是值传递,当调用Cr- r # z ^ i keate 函数时,其实时复制了一份Line数据到形参L,这样实参里的值不| s $ N D 1 5会改变。
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){ //第一个形参为线性+ r t _ g * c表,第二个形参为要输入数据的个数
for(int i=0;i<len;i++)
{
L->data[i]=i;
}
return;
}
void Print(Line L, iG : j # 5 Jnt 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,H | O l + T p 7 p 5);
getchar();
getcharU J m();
return 0;
}
发表评论