<C语言>结构体的参数传递和指针传递(注释详解)
来源:互联网 发布:mysql如何导出sql文件 编辑:程序博客网 时间:2024/05/16 14:34
本文包括两个版本,都讲到了参数传递和指针传递,作者水平有限,如有不足之处,敬请指正!
一、
//<<<<<<<结构体的参数传递和指针传递>>>>>>>//作者:wsg//时间:2017年8月14日//版本一:皆采用函数返回值为整个结构体的方式#include <stdio.h>struct gas{float distance;float gals;float mpg; //题目定义:mpg = distance * gals};struct gas func1(struct gas str); //申明函数func1()struct gas func2(struct gas *ptr); //申明函数func2()int main(int argc, char *argv[]){//定义并输入distance的值float distance; printf("请输入distance的值(带小数):\n");scanf("%f", &distance);//定义并输入gals的值float gals;printf("请输入gals的值(带小数):\n");scanf("%f", &gals);//将distance的值和gals的值(float型)赋给结构体strstruct gas str = {.distance = distance, .gals = gals};//func1()函数传参,传递整个结构体str = func1(str);printf("mpg1 = %f\n", str.mpg); //打印mpg的值//func2函数传参,传递一个地址进去,这里传递整个结构体的地址str = func2(&str);printf("mpg2 = %f\n", str.mpg); //打印mpg的值return 0;}//定义函数func1(),形参为整个结构体,返回值也为整个结构体struct gas func1(struct gas str) {str.mpg = (str.distance)*(str.gals);return str; //返回值为整个结构体}//定义函数func2(),形参为一个指针,应传递一个地址struct gas func2(struct gas *ptr){ptr->mpg = (ptr->distance)*(ptr->gals);return *ptr; //返回值为指针ptr解引用,相当于整个结构体}
二、
//<<<<<<<结构体的参数传递和指针传递>>>>>>>//作者:wsg//时间:2017年8月14日//版本二:使用指针传递时,不采用返回值方式#include <stdio.h>struct gas{float distance;float gals;float mpg; //mpg = distance * gals};struct gas func1(struct gas str);void func2(struct gas *ptr);int main(int argc, char *argv[]){//输入distance的值float distance; printf("请输入distance的值:\n");scanf("%f", &distance);//输入gals的值float gals;printf("请输入gals的值:\n");scanf("%f", &gals);//将distance的值和gals的值赋给结构体strstruct gas str = {.distance = distance, .gals = gals};//func1函数传参str = func1(str);printf("mpg1 = %f\n", str.mpg);//函数func2传参func2(&str);return 0;}//定义函数func1(),形参为整个结构体,返回值也为整个结构体struct gas func1(struct gas str){str.mpg = (str.distance)*(str.gals);return str;}//定义函数func2(),形参为一个指针,应传递一个地址,由于该函数是void类型,所以没有返回值void func2(struct gas *ptr){ptr->mpg = (ptr->distance)*(ptr->gals);printf("mpg2 = %f\n", ptr->mpg); //无返回值,只能在函数内部打印,而不能在main函数里打印}
阅读全文
0 0
- <C语言>结构体的参数传递和指针传递(注释详解)
- C语言中函数和指针的参数传递
- C语言指针传递参数
- C语言和Fortran混合编程结构体传递参数
- C语言中结构体参数变量的传递
- C语言之旅(5)参数传递(值传递,指针传递,数组传递)
- C语言函数参数的传递详解
- C语言函数参数的传递详解
- C语言函数参数的传递详解
- C语言函数参数的传递详解
- C语言函数参数的传递详解
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- (转载) C语言技巧:怎样把数组作为参数传递给函数?(值传递和指针传递)
- 汇编和C语言的参数传递
- c语言中参数传递(指针参数)
- c语言 传递结构指针案例
- java性能优化
- HDU
- redis分布式
- 文章标题
- Go的基本数据类型
- <C语言>结构体的参数传递和指针传递(注释详解)
- 牛客网华为在线训练---计算字符个数
- 111
- 基于maven发送邮件系列(1)--简单发送邮件
- hdu6106--Classes
- 正则表达式
- 质数筛检法
- 海量数据处理之布隆过滤器
- LeetCode 7. Reverse Integer