结构体数组怎么做函数参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体数组怎么做函数参数相关的知识,希望对你有一定的参考价值。

定义了一个结构体数组STUDENT student[200]; 如何用作函数参数如:void Label();函数里面要对数组的元素student[i].元素做操作 怎么实现 小白求高手详解

括号中加入STUDENT gh[]
首先要在主函数前定义void Label(STUDENT *[])但在STUDENT 定义之后
引用时Label(student) student本身就是地址 这是数组和结构体的性质
此时引用的是首地址,可在引用后对地址进行j=0循环加1到下一个结构体进行操作,如gh[j]追问

void Label(STUDENT *[]) *后面直接加[]么?还有就是我需要的是之前student[i].元素已经在一个for循环体内,并且每一次循环的i已经固定 怎么操作啊

追答

再定义一个变量,两个不影响

追问

我的意思是for(i;i<num,i++) .... void Label() .... void Label()中的i要与for循环的一致,不需要全部的怎么实现啊? 另外STUDENT *[] *[]这个是什么意思 呢 可以直接用么

追答

那就在自定义函数中不用自变量i,在调用时给地址加1就可以了直接进行操作

参考技术A 以C/C++为例,数组作为函数参数会转化为指针,结构体数组也不例外,会转化为指向该结构体类型的指针。
比如
struct A;
void foo(struct A*);
A a[10];
foo(a); //正确

以上是关于结构体数组怎么做函数参数的主要内容,如果未能解决你的问题,请参考以下文章

c语言 结构体的指针作为函数参数问题

怎么用结构体变量做函数参数

C语言结构体数组排序

c#调用Delphi DLL参数为结构体数组

C语言,怎么为动态结构体数组分配内存

C语言中结构体数组名作为函数参数的问题