首页 > 编程知识 正文

c语言自定义函数调用一维数组,c语言输出结构体数组

时间:2023-05-06 04:22:26 阅读:110187 作者:793

文章目录一、以结构体数组为函数参数(数组在堆栈存储器中制作)二、完整代码示例

一、以结构体数组作为函数参数(数组在堆栈内创建) ) ) )。

声明结构体类型 :定义结构数据类型,同时为该结构类型声明别名。 可以直接使用别名结构变量名称声明结构类型变量。 不需要在前面添加struct关键字;

typedefstructstudent { charname [5]; int age; int id; }Student;栈内存中声明结构体数组 :

//堆栈存储器中存储有Student array[3];命令行中接收数据 , 填充到结构体数组元素中 :

//在命令行中,输入要接受的年龄for(I=0; i 3; I ) printf (输入age : (n ) ); //通过命令换行符接受输入的年龄,scanf('%d”,) array[i].age )用于Student数组元素的age成员; } 结构体数组作为参数 :结构数组作为参数,可以间接赋值,修改该结构数组的元素,可以用作返回值;

此时结构体 数组 会退化为 结构体指针 ;

/** * @brief sort_struct_array按年龄排序结构数组* @param array结构指针* @param count结构数组中的元素数*/void sort _ struct _ array //学生年龄: //验证数组合法性的if(array==null ) { return; //排序for(I=0; i count; I ) for(j=I1; j count; j () if ) array[I].agearray[j].age ) { tmp=array[i]; array[i]=array[j]; array[j]=tmp; } } }}

二.完整代码示例

完整代码示例 :

# include stdio.h # include stdlib.h # include string.h/* * @ briefthestudentstruct *定义结构数据类型,并声明此结构类型的别名int age; int id; }Student; /** * @brief printf_struct_array打印结构数组* @param array数组作为函数参数包括指针* @param count数组中的元素数*/void printf _ struct _ arrray数组//打印结构数组中的结构age字段for (I=0; i count; I ) printf(studentage=%dn ),array[i].age ); } }/* * * @按年龄对brief sort _ struct _ array结构数组进行排序* @param array结构指针* @param count结构数组的元素数*/void sort _ struct _ arrray //验证数组合法性的if(array==null ) { return; //排序for(I=0; i count; I ) for(j=I1; j count; j () if ) array[I].agearray[j].age ) { tmp=array[i]; array[i]=array[j]; array[j]=tmp; }//****@brief主函数项*@return*/intmain(intargc,char* argv[],char**env ) ) /声明结构数组,并在堆栈存储器中声明studentent //在命令行中,输入要接受的年龄for(I=0; i 3; I ) printf (输入age : (n ) ); //通过命令换行符接受输入的年龄,scanf('%d”,) array[i].age )用于Student数组元素的age成员; //打印结构阵列结构age字段printf_struct_array(array,3 ); //命令行不要退出system(pause ); 返回0; }

执行结果 :

输入age :18输入age :16输入age :19 studentage=16 studentage=18 studentage=19请按任意键继续.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。