十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
其实,结构名就是一个变量,由于你的形参和你的实参取名是一样的。而且对于形参肯定会变
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了思南免费建站欢迎大家使用!
实参不会变。所以,你中间的maxA变量,其实是子函数的形参变了。但是你的实参没变
因此结果没变
改,对于子函数中,你在void Max_Element_Find(struct Max_Element* maxA,double *A,int n)
Max_Element_Find(maxA,A,n);这样就好了
1.可以把结构体作为参数啊,
2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。
3.真正调用的时,如下:
SqList
tempStruct;
InitList_Sq(tempStruct)
这样就可以了。
呵呵
1、结构体数组传给指针,实质上是不可能的,本质上传的是数组首地址,根据偏移来操作数组,这样看起来好像是真在操作数组一样。就和普通指针一样使用,只不过它是结构体数组。
2、例程:
typedef struct Student
{
char name[10] ;
int age ;
}Student;
#define LEN 10
//print all Student infomation
void fun(Student *pStu,int len)
{
int i ;
for(i = 0 ;i len ;++i)
{
printf("%s\t%d",pStu[i].name,pStu[i].age) ;
}
}
int main ()
{
Student stu[LEN] ;
fun(stu,LEN) ;
}
结构这么定义吧:
typedef struct student{
int num;
char name[50];
float s1;
float s2;
floats3;
}student,*pStu;
你原来那么定义只能存一个字符的姓名。
比如在main中,你可以定义一个struct student的数组。
pStu a = (pStu)malloc(5*sizeof(student));
然后传入指针
然后函数可以写为
int input(pStu ss, int length)//这里length是ss的长度,防止内存溢出。
int avag(pStu ss, int length)
下面是我写的input和main.你看一下吧。
#include stdlib.h
typedef struct student{
int num;
char name[50];
float s1;
float s2;
float s3;
}student,*pStu;
int input(pStu ss, int length)
{
int i = 0;
while ( i length )
{
printf("请输入学生%d的学号:",i);
scanf("%d",(ss-num));
printf("请输入学生%d的姓名:",i);
scanf("%s",(ss-name));
printf("请输入学生%d的第1门成绩:",i);
scanf("%f",(ss-s1));
printf("请输入学生%d的第2门成绩:",i);
scanf("%f",(ss-s2));
printf("请输入学生%d的第3门成绩:",i);
scanf("%f",(ss-s3));
printf("学生%d的 学号%d 姓名%s 第1门成绩%f 第2门成绩%f 第3门成绩%f\n",
i, ss-num,ss-name,ss-s1,ss-s2,ss-s3);
i++;
}
return 0;
}
int main(int argc,char** argv)
{
int count;
printf("输入学生数:");
scanf("%d",count);
if ( count=0 )
{
printf("数量错误!!\n");
return -1;
}
pStu a = (pStu)malloc(count*sizeof(student));
if ( a == NULL )
return -1;
input( a, count );
return 0;
}
可以的,这样写:
test((RGBColor){0x0, 0x1, 0x2});
这个意思是把{0x0, 0x1, 0x2}强制转化为RGBColor类型。从语法语义上面是没问题的,在GCC编译没问题。
但是51上面没实验,按C标准能说得通,你可以试一试。
C语言中结构体和函数有着本质上的不同。
结构体是用户自己定义的一中数据类型,比如说你想要把学生信息作为一个整体存放在一个数据类型中,可以定义结构体,其中某个成员存放学号,某个存放姓名等等。
但是函数就完全不同了,函数是为了实现某种功能,比如你要在一堆学生中寻找某一个学生可以用函数来实现。