博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
问题:C 语言结构体类型参数 与 结构体指针类型参数 的区别
阅读量:4111 次
发布时间:2019-05-25

本文共 905 字,大约阅读时间需要 3 分钟。

  • 结构体类型 参数传递的是结构中所有成员的副本。
  • 结构体指针类型 参数传递的是指向原结构体的指针。

  1. 代码
/* test3.c */#include 
struct data {
int i; char *msg;};void changeData1(struct data d); // 结构体类型参数void changeData2(struct data *d); // 结构体指针类型参数void main(){
struct data d; d.i = 0; d.msg = "0000000"; printf("init0, i:%d, msg:%s\n", d.i, d.msg); // changeData1(d); printf("change1, i:%d, msg:%s\n", d.i, d.msg); // changeData2(&d); printf("change2, i:%d, msg:%s\n", d.i, d.msg);}void changeData1(struct data d){
d.i = 1; d.msg = "111111111";}void changeData2(struct data *d){
d -> i = 2; d -> msg = "22222222222";}

运行结果:

ubuntu@cuname:~/dev/beginning-linux-programming/test$ gcc -o test3 test3.cubuntu@cuname:~/dev/beginning-linux-programming/test$ ./test3init0, i:0, msg:0000000			// 初始值change1, i:0, msg:0000000 		// 结构体类型参数 更改失败	change2, i:2, msg:22222222222	// 结构体指针类型 修改成功

转载地址:http://oclsi.baihongyu.com/

你可能感兴趣的文章
《图解 HTTP》 学习笔记
查看>>
webpack小白入门之文件监听,热更新,文件指纹,代码压缩【1-4】
查看>>
微信小程序picker隐藏年份
查看>>
快速了解 React Hooks 原理
查看>>
响应式布局
查看>>
百度云下载工具分享
查看>>
spark on yarn任务提交缓慢解决
查看>>
Filco圣手二代双模蓝牙机械键盘的连接方法
查看>>
pyspark学习笔记
查看>>
JDK源码那些事儿之PriorityBlockingQueue
查看>>
Docker那些事儿之镜像创建
查看>>
Docker那些事儿之编排工具docker-compose
查看>>
JDK源码那些事儿之SynchronousQueue上篇
查看>>
JDK源码那些事儿之SynchronousQueue下篇
查看>>
jq实现图片下载功能
查看>>
MySQL数据库文件的移动和权限设置
查看>>
cURL无法访问TLS网站故障解决
查看>>
pip升级
查看>>
HttpClient 如何设置超时时间
查看>>
Springmvc配置定时任务注解开发
查看>>