1.可以把结构体作为参数啊,
创新互联是一家专注于成都网站制作、成都做网站、外贸营销网站建设与策划设计,东川网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:东川等地区。东川做网站价格咨询:028-86922220
2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。
3.真正调用的时,如下:
SqList tempStruct;
InitList_Sq(tempStruct)
这样就可以了。
呵呵
其实,结构名就是一个变量,由于你的形参和你的实参取名是一样的。而且对于形参肯定会变
实参不会变。所以,你中间的maxA变量,其实是子函数的形参变了。但是你的实参没变
因此结果没变
改,对于子函数中,你在void Max_Element_Find(struct Max_Element* maxA,double *A,int n)
Max_Element_Find(maxA,A,n);这样就好了
j假如函数形式如下
void fun(struct example t)
{
}
可以在main函数中调用fun(eg[1]);
#include stdio.h
typedef struct student
{
char sno[32];
char sname[32];
}STU;
void PrintName(char *name)
{
printf("sname : %s\n", name);
}
int main()
{
STU ss = {"031202523", "aab"};
PrintName(ss.sname);
return 0;
}
你有几处错误,以下是修改后的代码
#includestdio.h
#define M 3
struct date
{
int num;
char name[10];
char sex;
int age;
float score[5];
}student[M];
void f(struct date student[]);
void main()
{
int i,j;
printf("请按顺序输入学生数据\n");
for(i=0;iM;i++)
{
printf("姓名:");
scanf("%s",student[i].name);
printf("学号:");
scanf("%d",student[i].num);
printf("性别:");
scanf("%c%c",student[i].sex);
printf("年龄:");
scanf("%d",student[i].age);
printf("语文成绩:");
scanf("%f",student[i].score[0]);
printf("数学成绩:");
scanf("%f",student[i].score[1]);
printf("英语成绩:");
scanf("%f",student[i].score[2]);
if(i!=2)
printf("请输入下一个学生的数据\n");
}
/*for(i=0;iM;i++)*/
f(student);
for(i=0;iM;i++)
printf("第%d位同学的总分为%f,平均分为%f\n",i+1,student[i].score[3],student[i].score);
}
void f(struct date student[])
{
int i,j;
for(i=0;iM;i++)
{
for(j=0;j3;j++)
{
student[i].score[3]+=student[i].score[j];
student[i].score[4]=student[i].score[3]/3;
}
}
}