C语言结构体自动初始化实现,C语言中结构体(struct)的几种初始化方法
本文给大家总结的struct数据有3种初始化方法
1、顺序
2、C风格的乱序
3、C++风格的乱序
下面通过示例代码详细介绍这三种初始化方法。
1)顺序
这种方法很常见,在一般的介绍C的书中都有介绍。顺序初始化的特点是: 按照成员定义的顺序,从前到后逐个初始化;允许只初始化部分成员;在被初始化的成员之前,不能有未初始化的成员。
示例:
struct User oneUser = {10, "Lucy", "/home/Lucy"};
2)乱序(C风格)
顺序的缺陷是必须按成员定义的顺序逐个初始化,不能间隔。而乱序的方式则很好的解决了这个问题,因为这种方式是按照成员名进行。
示例:
struct User oneUser = {
.name = "Lucy",
.id = 10,
.home = "/home/Lucy"
};
3)乱序(C++风格)
C++风格的乱序初始化方式跟C风格的一样,只是它更常用在C++代码里。
示例:
struct User oneUser = {
name:"Lucy",
id:10,
home:"/home/Lucy"
};
注意:不论是哪种方式,都允许只初始化部分成员;未被初始化的成员默认为0(指针类型的成员默认为NULL)。两种乱序初始化方法,即可以用在C代码中,也可以用在C++代码中。
以上就是这篇文章的全部内容,希望大家能够喜欢,如果有疑问可以留言交流。
C语言结构体自动初始化实现,C语言中结构体(struct)的几种初始化方法相关推荐
- c语言蓝屏代码大全,window_Win10系统出现蓝屏提示错误代码0x00000050两种解决方法, 刚刚升级Win10系统的一段 - phpStudy...
Win10系统出现蓝屏提示错误代码0x00000050两种解决方法 刚刚升级Win10系统的一段时间,容易出现蓝屏的问题.导致蓝屏故障的原因各不相同,我们需要根据错误代码来执行正确的解决方法.比如,最 ...
- c语言编程幼儿园自动分班,C语言课件 第5章选择结构.ppt
C语言课件 第5章选择结构 第5章 选择结构程序设计 搜玛厚壶帛酒慈钝梢抽溢泣蒲滓桐惶移掣桩一森距埂蹋朴汛拇银瘴告逾符C语言课件 第5章选择结构C语言课件 第5章选择结构 主要内容:关系运算符和关系表 ...
- c语言课程设计自动答题系统,C语言课程设计-单项选择题标准化考试系统设计.doc...
PAGE 沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:C语言课程设计 课程设计题目:单项选择题标准化考试系统设计 院(系): 计算机学院 专 业: 计算机科学与技术 班 级: 学 号: 姓 ...
- c语言如何实现自动打开网页,C语言,如何对网页进行操作?
最佳答案 首先,你这个想法还是很不错的,我以前也想这么做过.不过,学习html语言在这里肯定是次要的,主要的还是要学会分析的方法,而不是掌握被分析的内容,你说是吧?如果要用程序抓取网页自动保存到本地, ...
- c语言字符数组自动填充,数组在C中自动填充
我正在学习C,做一些简单的例子,并发现了这种奇怪的行为. 当填充整数数组的元素时,如果任何元素设置为大于2147483647(我相信是最大整数值?),则数组中的其余元素将设置为该确切数字,每个其中之一 ...
- svn 目录结构 trunk java_如何彻底删除SVN中的文件和文件夹(附恢复方法)
这里假设SVN项目的目录为 /data/svn/project,我们想排除trunk/test.exe文件和trunk/notallowed/目录,操作步骤如下及执行的svn命令(在svn安装目录的b ...
- C语言中返回字符串函数的四种实现方法
有四种方式: 1.使用堆空间,返回申请的堆地址,注意释放 2.函数参数传递指针,返回该指针 3.返回函数内定义的静态变量(共享) 4.返回全局变量 其实就是要返回一个有效的指针,尾部变量退出后就无效了 ...
- c语言 2059 语法错误,关于CUDA C 项目中“ error C2059: 语法错误:“” ”问题的解决方法...
该问题的关键在于理解CUDA项目中C\C++文件需要由c++编译器进行编译,而CUDA C的源文件需要由CUDA的编译器nvcc.exe进行编译. 发生该语法错误的原因是cu文件被C++编译器所编译, ...
- android webview 自动点击事件,Android中的WebView布局点击事件的方法
继承WebView自定义一个MyWebView,然后重载它的onTouchEvent方法,就可以解决了. public class MyWebView extends WebView{ public ...
最新文章
- Mybatis错误:Parameter 'XXX' not found. Available parameters are [1, 0, param1, param2]
- VirtualCopy in WinCE6.0
- linux用echo重定向到文件,Linux – Bash将String重定向到文件
- C#调用C++ DLL的方式
- JSONP - 跨域AJAX
- 汇编烧程序进单片机要什么软件_单片机编程语言及应用技巧解析
- Java 邮箱判断 正则表达式
- curl 发送各种格式的请求
- javaweb 图书管理系统完整代码_Java Web安全代码审计(一)
- 【Flink】Flink 流API 和 Table 以及 SQL API是否可以共存
- android执行lua脚本的方法,从Android应用程序调用Lua脚本
- Chrome 最小字体12px
- 8数据提供什么掩膜产品_英特尔推出多款数据中心产品:继续提供差异化选项...
- isjavaidentifierpart和isjavaidentifierstart有区别么?
- Oracle在线撤销表空间,Oracle创建、管理撤销表空间
- cocoapods 总结
- 最近写mapreduce程序从hbase中抽取程序遇到的一些问题
- 【软件自动化测试】基于自设网站的软件测试与分析
- php+tcpdf+表格,php 使用tcpdf库输出pdf
- Codeforces Round #739 (Div. 3) E. Polycarp and String Transformation