c语言中结构体头文件是什么,函数形参里有结构体指针,为什么在头文件生
满意答案
lam950
2017.04.08
采纳率:59% 等级:8
已帮助:913人
C语言用结构体指针作函数参数
这种方式比用结构体变量作函数参数效率高,因为无需传递各个成员的值,只需传递一个地址,且函数中的结构体成员并不占据新的内存单元,而与主调函数中的成员共享存储单元。这种方式还可通过修改形参所指成员影响实参所对应的成员值。
例如
struct book
{
char bookname[30];
int quantity;
};
main()
{
void fun(struct book*p);
struct book book1={"Programming in C",10};
fun(&book1);
printf("%d copies\n", book1.quantity);
}
void fun(struct book*p)
{
printf("The book \" %s\" has ",p->bookname);
p->quantity -=3;
}
显示:The book "Programming in C" has 7 copies
此外,还可将结构体数组作为函数参数;还可设计结构体指针型函数,即返回的地址是指向结构体类型数据的。
00分享举报
c语言中结构体头文件是什么,函数形参里有结构体指针,为什么在头文件生相关推荐
- C语言中你可能会用到的字符串函数的代码
将写内容过程中比较常用的内容段做个备份,下面资料是关于C语言中你可能会用到的字符串函数的内容. {if(dest == src)return dest;else if(dest < src){} ...
- Python编程语言学习:python语言中快速查询python自带模块函数的用法及其属性方法、如何查询某个函数关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法.如何查询某个函数&关键词的用法.输出一个类或者实例化对象的所有属性和方法名之详细攻略 ...
- Go 语言中的一等公民:看似普通的函数,凭什么?
大家好,我是煎鱼. 在 Go 语言中,一提函数,大家提的最多的就是 "Go 语言的函数是一等公民".这个定义来的非常突然,我们先了解一下什么是一等公民,他又凭什么? 根据维基百科的 ...
- c语言如何将字符转换为数字,C语言中一些将字符串转换为数字的函数小结
C语言atoi()函数:将字符串转换成int(整数)头文件: #include atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * str); ...
- 如何在c语言中源文件调用另一个源文件的函数
在源文件A1.c中调用A2.c 中的函数有两种方法: 1.在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:在A2.c中:有函数void A2(){...};在 ...
- c语言 信号函数,C语言中进程信号集的相关操作函数详解
C语言sigismember()函数:测试某个信号是否已加入至信号头文件:#include 定义函数:int sigismember(const sigset_t *set, int signum); ...
- C语言中如何将二维数组作为函数的参数传递
今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...
- angular文件上传php,Angular2里获取(input file)上传文件的内容的方法
最近在用Angular2,需要有一个上传文件的功能,但是又不想用库,所以直接用原生的input file 标签. 然后想获取上传的内容,于是先想了个愚蠢的方法,先通过id获取到这个input标签,然后 ...
- c语言 函数的参数传递示例_C语言中带有示例的remove()函数
c语言 函数的参数传递示例 C语言中的remove()函数 (remove() function in C) The remove() function is defined in the <s ...
最新文章
- Log4J配置方式Java工程测试
- 微服务发现与注册之Eureka源码分析
- 中国引领全球主导人工智能竞赛
- bootstrapr表格父子框_使用Bootstrap Table建立父子表
- OpenCASCADE绘制测试线束:几何命令之约束
- 肝!用 Highcharts 绘制饼图,也很强大
- jvm系列二之GC收集器
- com+ system application 启动_dubbo启动引导过程(基于2.7.9)
- 堆和栈的概念和区别 python_堆的意思
- 记录——《C Primer Plus (第五版)》第七章编程练习第六题
- Linux下修改IP
- 委托/事件/线程传参简单理解
- MATLAB画演化博弈图,演化博弈matlab程序与作图
- 《编程珠玑》读解 一
- React-Native调用系统分享组件Share组件的使用
- U深度-重装电脑系统
- 通过5个概念 一文弄明白DAO
- PCB绘制成长日记1
- 全面解读系统更新,收藏下这份 Android 12 (S) 版本适配自查表
- no such file or directory, open '/Users/anna/package.json'的解决
热门文章
- 【Flink】FLink 反序列化空指针 java.lang.String.<init> SimpleStringSchema
- 【kafka】kafka docker jmx 远程连接 跨容器
- 【NATS streaming】NATS streaming 简介与安装
- 50-00-040-配置-Flink Configuration简介
- Spring : Spring 深入理解lombok
- hive-04-Hive函数大全
- 把VS Code打造成Java开发IDE,也挺爽!
- spring框架中Bean的基本属性及调用外部properties等配置文件的方法介绍
- 我的JavaWeb学习1
- ssm当用户登录成功显示用户名_从零到企业级SSM电商项目实战教程(十八)用户登录功能开发...