本篇文章给大家谈谈c语言结构体作参数,以及c语言结构体参数传递对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、C语言中,结构体作为函数参数传递,详解?2、c语言中结构体变量做函数参数的问题3、有关C语言中结构体变量做函数参数的问题4、关于c语言中的结构体数组作为函数参数传递的5、C 语言关于结构体做参数传递?6、C语言问题,有关于结构体作为输入参数
C语言中,结构体作为函数参数传递,详解?
1.可以把结构体作为参数啊,
2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。
3.真正调用的时,如下:
SqList
tempStruct;
InitList_Sq(tempStruct)
这样就可以了。
呵呵
c语言中结构体变量做函数参数的问题
你有几处错误,以下是修改后的代码
#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;
}
}
}
有关C语言中结构体变量做函数参数的问题
其实,结构名就是一个变量,由于你的形参和你的实参取名是一样的。而且对于形参肯定会变
实参不会变。所以,你中间的maxA变量,其实是子函数的形参变了。但是你的实参没变
因此结果没变
改,对于子函数中,你在void Max_Element_Find(struct Max_Element* maxA,double *A,int n)
Max_Element_Find(maxA,A,n);这样就好了
关于c语言中的结构体数组作为函数参数传递的
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) ;
}
C 语言关于结构体做参数传递?
双指针
C语言结构体传参

小-黯
原创
关注
7点赞·2315人阅读
目录
C语言结构体传参
1. 普通传参
1.1 测试代码
1.2 测试结果
1.3 结果分析
2. 单指针传参
2.1 修改结构体数据
2.1.1 测试代码
2.1.2 测试结果
2.1.3 结果分析
2.2 修改结构体地址
2.2.1 测试代码
2.2.2 测试结果
2.2.3 结果分析
3. 双指针传参
3.1 测试代码
3.2 测试结果
3.2 结果分析
C语言结构体传参
结构体传参包括三种传参方式
普通传参:函数接收到结构体参数后,会复制一份原来的结构体作为形参供函数使用,而函数内的任何操作都是对拷贝结构体的修改,不会影响到原本的结构体变化。
单指针传参:函数接收的是一个结构体的地址,该指针指向的是结构体起始地址,也就相当于传入了结构体内所有变量的地址,函数接收到该结构体指针后,我们就可以根据地址访问结构体中每个变量的真实数据,在函数内对结构体内数据的操作,都会影响到原本结构体内数据的变化
双指针传参:函数接收的是结构体指针变量的地址,因为一级指针代表的是结构体的地址,在函数中能够操作结构体内的数据,则二级指针指向的是结构体的地址,则同理我们可以根据二级指针访问修改结构体的地址
即通过一级指针,对结构体内数据的操作会影响到原本结构体内数据的变化
而通过二级指针,对结构体地址的操作会影响到原本结构体地址的变化,例如为结构体分配空间
C语言问题,有关于结构体作为输入参数
#include stdio.h
typedef struct
{
char name[10];
char num[10];
int score;
} StudentStr;
void input(StudentStr *student)//=============
{
printf(“Name:”);
scanf(“%s”, student-name);//=============
printf(“Number:”);
scanf(“%s”, student-num);//=============
printf(“Score:”);
scanf(“%d”, student-score);//=============
}
void output(StudentStr student)
{
printf(“Name: %s\n”, student.name);
printf(“Number: %s\n”, student.num);
printf(“Score: %d\n”, student.score);
}
int main()
{
StudentStr student[5];
input(student[1]);//=============
output(student[1]);
return 0;
}
c语言结构体作参数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言结构体参数传递、c语言结构体作参数的信息别忘了在本站进行查找喔。