1)使用结构体变量作为函数的参数

  使用结构体变量作为函数的实参时,采用的是值传递,会将结构体变量所占内存单元的内容全部顺序传递给形参,形参必须是同类型的结构体变量

demo:

 # include <stdio.h>
# include <stdlib.h> //创建一个Student结构
struct Student
{
char name[];
float fScore[];
}student={"dire",98.5,89.0,93.5}; //初始化结构体变量 void Display(struct Student su) //形参为同类型的结构体(Student结构)
{
printf("-----Information------\n");
printf("Name:%s",su.name);
printf("Chinese:%.2f\n",su.fScore[]);
printf("Math:%.2f\n",su.fScore[]);
printf("English:%.2f",su.fScore[]);
printf("平均分数为:%.2f\n",(su.fScore[]+su.fScore[],su.fScore[])/);
} int main ()
{ Display(student); return ;
}

Printf:


2)使用指向结构体变量的指针作为函数参数

Demo:

 # include <stdio.h>
# include <stdlib.h> struct Student {
char name[];
float fScore[];
}student = {"dire",98.5,89.0,93.5}; //初始化结构体变量 void Display(struct Student *pStruct)
{
printf("------Information-------\n");
printf("Name:%s\n",pStruct->name);
printf("Chinese:%.2f\n",(*pStruct).fScore[]);
printf("Math:%.2f\n",(*pStruct).fScore[]);
printf("English:%.2f\n",pStruct->fScore[]);
} int main ()
{
Display(&student); //将结构体变量的首地址作为实参传入pStruct指针变量中 return ;
}

3)使用结构体变量的成员作为函数参数

  这种方式为函数传递参数与普通的变量作为实参是一样的,是值传递

C语言 结构体作为函数的参数的更多相关文章

  1. go语言结构体作为函数参数,采用的是值传递

    经过验证,go语言结构体作为函数参数,采用的是值传递.所以对于大型结构体传参,考虑到值传递的性能损耗,最好能采用指针传递. 验证代码: package main import ( "fmt& ...

  2. 深入理解C语言-结构体做函数参数

    结构体做函数参数,在C语言中属于常见现象,此时为了内存考虑,不传递结构体,而是传递结构体的地址 结构体定义 struct Man { char name[64]; int age; }; 结构体可以与 ...

  3. C语言结构体和函数

    #include <stdio.h> struct Person { char *name; }; void change1(struct Person p); void change2( ...

  4. C语言结构体及函数传递数组參数演示样例

    注:makeSphere()函数返回Sphere结构体,main函数中.调用makeSphere()函数,传递的第一个參数为数组,传递的数组作为指针.

  5. golang中结构体当做函数参数或函数返回值都会被拷贝

    1. 结构体做函数的参数或返回值时,都会被重新拷贝一份如果不想拷贝,可以传递结构体指针 package main import "fmt" type Person struct { ...

  6. go语言基础之结构体做函数参数 值传递和地址传递

    1.结构体做函数参数值传递 示例: package main //必须有个main包 import "fmt" //定义一个结构体类型 type Student struct { ...

  7. 在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

  8. 【C++】结构体/结构体数组/结构体指针/结构体嵌套/函数参数/const

    一.结构体声明 struct Student { //成员列表 string name; int age; int score; }; //s3;定义时直接声明 int main() { struct ...

  9. c语言结构体

    [C语言]21-结构体 本文目录 一.什么是结构体 二.结构体的定义 三.结构体变量的定义 四.结构体的注意点 五.结构体的初始化 六.结构体的使用 七.结构体数组 八.结构体作为函数参数 九.指向结 ...

随机推荐

  1. [暑假集训--数论]poj2034 Anti-prime Sequences

    Given a sequence of consecutive integers n,n+1,n+2,...,m, an anti-prime sequence is a rearrangement ...

  2. Docker分层原理与内部结构

    转自:1 :   https://www.csdn.net/article/2015-08-21/2825511 2:    http://blog.51cto.com/wzlinux/2044797 ...

  3. pat 团体天梯赛 L2-011. 玩转二叉树

    L2-011. 玩转二叉树 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜 ...

  4. 洛谷 [P1337] 平衡点

    模拟退火练手 一道模拟退火的好题 结果一定势能最小 与模拟退火思路高度一致 #include <iostream> #include <cstdio> #include < ...

  5. linux多线程学习笔记五--线程安全【转】

    转自:http://blog.csdn.net/kkxgx/article/details/7506085 版权声明:本文为博主原创文章,未经博主允许不得转载. 一,线程安全基础 一个函数被称为线程安 ...

  6. Manjaro Linux下使用powerline

    作为linux的重度使用者,vim和bash的使用也非常平凡,总想有点不同,感觉千篇一律的提示符已经看的厌倦了.作为广大网友的推荐的powerline可以为bash和vim的提示符美化增色不少.下面请 ...

  7. [SaltStack] Return日志入库审计

    SaltStack日志return审计 在我们执行salt任务时, 默认日志是屏幕打印的, 对于我们审计任务运行情况带来很不方便, 因此我们对日志结果进行了二次开发, 将job日志处理后入库, 方便查 ...

  8. C#byte怎么转成图片

    这个其实很简单我给大家提供一个方法吧 /// <summary> /// 字节数组生成图片 /// </summary> /// <param name="By ...

  9. hdu 3440(差分约束好题)

    House Man Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  10. 洛谷 P1372 又是毕业季I[数论/神坑规律题]

    题目描述 为了把毕业晚会办得更好,老师想要挑出默契程度最大的k个人参与毕业晚会彩排.可是如何挑呢?老师列出全班同学的号数1,2,……,n,并且相信k个人的默契程度便是他们的最大公约数(这不是迷信哦~) ...