如何用函数初始化结构体
问题
这里主要讨论函数的參数。应该是结构体呢。还是结构体的地址,还是二者都行。
实验证明,仅仅能用结构体的地址。
代码
#include<stdio.h>
#include<math.h>
#include<stdlib.h>typedef struct
{int a; //"int a=0;" is wrongint b[10];
}STU;void init_struct_point(STU *s){ //參数为数组指针s->a=100;s->b[0]=5;s->b[1]=7;printf("in f_point(), s->a %d\n",s->a);printf("in f_point(), s->b[0] %d\n\n",s->b[0]);
}void init_struct(STU s){ //參数为数组s.a=1;s.b[0]=2;s.b[1]=3;printf("in f(), s.a %d\n",s.a);printf("in f(), s.[0] %d\n\n",s.b[0]);
}int main(){STU s;printf("s=%d \t &s=%d\n\n",s,&s);init_struct_point(&s); //"s1"会引发编译错误printf("s=%d \t &s=%d\n\n",s,&s);printf("out f_point(), s.a %d\n",s.a);printf("out f_point(), s.b[0] %d\n",s.b[0]);printf("out f_point(), s.b[1] %d\n\n",s.b[1]);init_struct(s); //"&s1"会引发编译错误printf("out f(), s.a %d\n",s.a);printf("out f(), s.b[0] %d\n",s.b[0]);printf("out f(), s.b[1] %d\n\n",s.b[1]);system("pause");return 0;
}
执行结果
遗留问题
1.结构体变量名到底是什么。请看s以及&s?
2.结构体变量名 和 结构体数组变量名 有什么差别和联系? http://blog.csdn.net/hiboy_111/article/details/44454149
如何用函数初始化结构体相关推荐
- 串口初始化结构体和固件库讲解
串口初始化结构体和固件库讲解 常用的6个函数,结构体: USART 初始化结构体(USART_InitTypeDef) USART 时钟初始化结构体(USART_ClockInitTypeDef) 串 ...
- 构造函数初始化结构体
构造函数初始化结构体 虽然初始化列表易于使用,但它有两个缺点: 如果有某个成员未被初始化,那么在这种情况下,跟随在该成员后面的成员都不能初始化. 如果结构体包括任何诸如字符串之类的对象,那么在许多编译 ...
- 通过宏函数计算结构体成员偏移量
编译器在为结构体成员分配内存时,由于存在内存对齐机制,各个成员所占空间可能不是连续的,因而不能简单的通过成员类型所占的字长来推断其它成员或结构体对象的地址. 获得结构体成员偏移量的方法可以参照 ...
- 【C 语言】结构体 ( 结构体作为函数参数 | 结构体指针作为函数参数 )
文章目录 一.结构体作为函数参数 二.结构体指针作为函数参数 三.完整代码示例 一.结构体作为函数参数 结构体变量 作为函数形参 , 在函数中 , 只能访问 该函数形参 , 无法修改 结构体内存 的值 ...
- 如何用c语言结构体建立data,C语言结构体使用
结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类. 个人认为是C语言实现面向对象编程非常重要的数据类型之一 结构体的使用分为定义.引用. ...
- Go语言初始化结构体的几种方式
结构体在实例化时可以直接对成员变量进行初始化,初始化有两种形式分别是以字段"键值对"形式和多个值的列表形式,键值对形式的初始化适合选择性填充字段较多的结构体,多个值的列表形式适合填 ...
- golang语法系列3-Go语言初始化结构体的成员变量
1.使用"键值对" 初始化结构体 1.1.键值对初始化结构体的书写格式 键值对初始化的格式如下: ins:= 结构体类型名{字段1:字段1的值,字段2:字段2的值,... } 结构 ...
- go结构体初始化_Go语言初始化结构体的成员变量
结构体在实例化时可以直接对成员变量进行初始化,初始化有两种形式分别是以字段"键值对"形式和多个值的列表形式,键值对形式的初始化适合选择性填充字段较多的结构体,多个值的列表形式适合填 ...
- 简单介绍C语言使用四种方法初始化结构体
这篇文章说明了什么是结构体,介绍了结构体的概念和使用优点,在C语言中如何使用和初始化结构体方法,通过详细的代码展开进行说明,希望该篇文章对你有所帮助 什么是结构体 在实际问题中,一组数据往往有很多种不 ...
最新文章
- 人工智能时代,最先占领高维度空间
- ASP.NET Core+Quartz.Net实现web定时任务
- 干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归
- mustache,用{{}}获取值
- 103. 二叉树的锯齿形层次遍历
- Mysql5.7开启远程
- 打印水仙花数oracle,javaScript实现回文数、水仙花数判断和输出斐波那契数列
- java xlsx怎么转换成excel格式_python小工具 | Excel的xls和xlsx格式文件转换
- 【MobaXterm】设置保持SSH连接
- 读取swagger配置文件里的内容
- ubuntu 安装vnc_vnc4server arm架构
- 36. LatencyTOP
- 财务系统软件数据库服务器配置,财务系统软件数据库服务器配置
- JButton的使用
- Deepfacelab 新手教程(转载)
- mac电脑软件卸载不掉 如何用CleanMyMac X彻底删除?
- 零基础制作平衡小车【连载】12---平衡小车控制原理
- topsis法matlab程序,TOPSIS算法(示例代码)
- 计算机能不能升级固态硬盘,不算很老的计算机升级,换一块MLC的固态硬盘吧,新电脑回来了!...
- SP(软件过程)的发展历程2:计划驱动软件开发过程时代
热门文章
- 如何判断Socket连接失效
- php echo中的点是什么?,php编程中echo用逗号和用点号连接的区别,echo逗号_PHP教程...
- python生成伪随机数的扩展库_python模块介绍-random:生成伪随机数
- c语言修改elf文件crc32,ELF文件中调试信息的格式说明?
- c语言常量x,C语言的数据、常量和变量
- mq多个消费者消费一个消息_一个普通消费者的米家产品使用感受
- python导入csv报错_Python Pandas read_csv报错
- matlab子函数调用变量,matlab中,怎么样用function自定义函数调用另一个函数名为输入?...
- android intent.putextras,关于android:如何使用putExtra()和getExtra()来表示字符串数据
- python中difflib_python中的difflib