(struct)结构体变量作为函数参数调用的方法小结

https://blog.csdn.net/tham_/article/details/45370607

结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析

struct stud
{long int num;float score;
};

/结构体变量作为函数的参数,修改之后的成员值不能返回到主调函数/

void funvr(struct stud t)
{t.num=2000101;t.score=71.0;
}

/结构体数组作为函数的参数,修改后的元素的成员值能返回到主调函数/

void funar(struct stud t[])
//void funar(struct stud &t)
{t[0].num=3000101;         /*注意结构体数组元素的成员的引用形式*/t[0].score=81.0;t[1].num=3000102;t[1].score=82.0;
}

/结构体指针变量作为函数的参数,修改后的结构体成员的值能返回到主调函数/

void funpr(struct stud *t)
{t->num=4000101;          /*注意通过结构体指针变量引用成员的具体形式*/(*t).score=92.0;
}

/在主函数中分别调用上述函数修改成员值,再验证结果的正确性/\

#include<stdio.h>struct stud
{long int num;float score;
};void funvr(struct stud t)
{t.num=2000101;t.score=71.0;
}void funar(struct stud t[])
//void funar(struct stud &t)
{t[0].num=3000101;         /*注意结构体数组元素的成员的引用形式*/t[0].score=81.0;t[1].num=3000102;t[1].score=82.0;
}void funpr(struct stud *t)
{t->num=4000101;          /*注意通过结构体指针变量引用成员的具体形式*/(*t).score=92.0;
}void main()
{struct stud a[2]={{1000101,61.0}, {1000102,62.0}};struct stud b=a[0],*p;printf("old b: b.num:%ld\tb.score:%f\n",b.num,b.score);/*显示结构体变量b的成员的原有值*/funvr(b);/*验证第一种情况,观察并分析结果,看结构体变量作为函数参数时,形参结构体变量成员的值的改变能影响实参结构体变量的成员的值,以下为输出调用函数funvr(b)之后的结果值*/printf("call funvr() new b: b.num:%ld\tb.score:%f\n ",b.num,b.score);funpr(&b);            /*将结构体变量的指针对作为函数的参数*/printf("call funpr() new b: b.num:%ld\tb.score:%f\n ",b.num,b.score);/*输出结构体数组a元素的原来的成员值*/printf("old a[0]:a[0].num:%ld\ta[0].score:%f\n ",a[0].num,a[0].score);printf("old a[1]:a[1].num:%ld\ta[1].score:%f\n ",a[1].num,a[1].score);/*将结构体数组a作为函数的参数,然后再输出其元素的成员的值,已经被修改了*/funar(a);printf(" new a[0]:a[0].num:%ld\ta[0].score:%f\n ",a[0].num,a[0].score);printf("new a[1]:a[1].num:%ld\ta[1].score:%f\n ",a[1].num,a[1].score);}

(struct)结构体变量作为函数参数调用的方法小结相关推荐

  1. c语言结构体作为形参是否加struct_(struct)结构体变量作为函数参数调用的方法小结...

    结构体变量作为函数参数传递的3种方法将一个结构体变量中的数据传递给另一个函数,有下列3种方法:用结构体变量名作参数.一般较少用这种方法.用指向结构体变量 结构体变量.结构指针变量.结构数组作为函数的参 ...

  2. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...

    C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...

  3. 结构体和结构体指针作为函数参数的区别

    0·说明 文章里的观点来自网络的总结,程序经过自己的验证,在VC6.0中可正常执行. 1.测试程序 /* ##结构体指针与结构体变量用作函数参数区别:##结构体指针作为函数参数时,调用时传递的是指向一 ...

  4. C语言数组、结构体、结构体数组作为函数参数

    数组作为函数参数 如果想把一个数组名参数传递给函数,正确的函数形参应该是怎样的?它是应该声明为一个指针还是一个数组? 调用函数时实际传递的是一个指针,所以函数的形参实际上是一个指针,但为了使程序员新手 ...

  5. 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 堆内存创建 )

    文章目录 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 二.完整代码示例 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 在上一篇博客 [C 语言]结构体 ( 结构体 数 ...

  6. 【C 语言】结构体 ( 结构体作为函数参数 | 结构体指针作为函数参数 )

    文章目录 一.结构体作为函数参数 二.结构体指针作为函数参数 三.完整代码示例 一.结构体作为函数参数 结构体变量 作为函数形参 , 在函数中 , 只能访问 该函数形参 , 无法修改 结构体内存 的值 ...

  7. 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 栈内存创建 )

    文章目录 一.结构体 数组 作为函数参数 ( 数组 在 栈内存创建 ) 二.完整代码示例 一.结构体 数组 作为函数参数 ( 数组 在 栈内存创建 ) 声明结构体类型 : 定义 结构体 数据类型 , ...

  8. struct结构体扩展-成员函数

    struct结构体扩展-成员函数 在C++中,允许在结构中定义函数,该函数被称为成员函数,描述形式如下: struct 结构名{数据成员成员函数 } 例题描述: 输入n个学生的信息,每个学生信息包括姓 ...

  9. c语言 结构体指针做函数参数

    demo:修改某个学生的成绩 不利用指针直接在主函数内修改学生成绩的代码: #include <stdio.h> #include <string.h> #define N 5 ...

  10. C++_结构体指针_嵌套结构体_结构体做为函数参数_结构体值传递和指针传递---C++语言工作笔记026

    然后我们来看结构体指针. 可以看到我们先去定义一个结构体 然后我们在main函数中,去声明一个结构体 s 然后我们定义一个指针 int *p = &s; 指向这个结构体变量. 这里要注意

最新文章

  1. 几个cvebase_ifo基础信息融合在一起
  2. Zabbix3的离线安装
  3. 理解Java字符串常量池与intern()方法
  4. 总结之前做项目中要注意的一些书写规范
  5. 在Spring中使用Redis
  6. Nginx严格访问代理HTTP资源
  7. java指定sql生成xml,用Java实现可保存状态的数据库生成XML树(8)-JSP教程,Java与XML...
  8. [转载] ANTLR——词法分析
  9. win7备份工具_一键重装win7系统教程,如何重装win7系统
  10. sql游标 while_用SQL Server中的排名函数替换SQL While循环和游标,以提高查询性能
  11. Java List 的merge
  12. 使用原理视角看 Git
  13. python中的[1:]、[::-1]、X[:,m:n]和X[1,:]
  14. java学习(分布式架构)
  15. vue项目打包成app
  16. icom对讲机写频线定义_ICOM对讲机的常见故障和使用中的问题
  17. python调用百度云文字识别
  18. S3接口访问华为云OBS
  19. threejs 透视相机参数解析
  20. maven报错The forked VM terminated without saying properly goodbye. VM crash or System.exit called

热门文章

  1. 秃头真的是程序员的标配吗
  2. hhkb mac设置_HHKB 键盘 使用攻略 Karabiner
  3. 优启通制作系统u盘_优启通u盘装系统制作工具
  4. 个人用游戏设计框架图
  5. 500个爆文标题_总结了500篇10W+爆文 好标题都离不开以下几点
  6. 绘制折线图分析股票涨跌
  7. 区块链开发主流编程语言居然是Go语言!
  8. 12、添加和删除页码符号
  9. java 获取微信公众号文章 使用搜狗微信搜索
  10. Arduino_Core_STM32---pinMode()实现分析