文档章节

C语言结构体初始化的三种方法

mickelfeng
 mickelfeng
发布于 2017/09/04 11:50
字数 199
阅读 8
收藏 0

直接上示例

#include<stdio.h>

struct student_st
{
	char c;
	int score;
	const char *name;
};

static void show_student(struct student_st *stu)
{
	printf("c = %c, score = %d, name = %s\n", stu->c, stu->score, stu->name);
}

int main(void)
{
	// method 1: 按照成员声明的顺序初始化
	struct student_st s1 = {'A', 91, "Alan"};
	show_student(&s1);

	// method 2: 指定初始化,成员顺序可以不定,Linux 内核多采用此方式
	struct student_st s2 = 
	{
		.name = "YunYun",
		.c = 'B',
		.score = 92,
	};
	show_student(&s2);

	// method 3: 指定初始化,成员顺序可以不定
	struct student_st s3 = 
	{
		c: 'C',
		score: 93,
		name: "Wood",
	};
	show_student(&s3);
	
	return 0;
}

运行结果

如果想初始化结构体数组,可采用 {{ }, { }, { }} 方式,如

struct student_st stus[2] = 
{
	{
		.c = 'D',
		.score = 94,
		/*也可以只初始化部分成员*/
	},
	{
		.c = 'D',
		.score = 94,
		.name = "Xxx"
	},
};

本文转载自:https://www.2cto.com/kf/201503/386575.html

共有 人打赏支持
mickelfeng

mickelfeng

粉丝 227
博文 2666
码字总数 569081
作品 0
成都
高级程序员
私信 提问
C语言新手入门学习经验分享,基础知识大汇总!

C语言是面向过程的,而C++是面向对象的 相信这么努力的你 已经置顶了我 学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后...

小辰带你看世界
01/05
0
0
C语言学习技巧干货,新手入门必看,基础知识大汇总!

学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们...

小辰GG
2017/12/19
0
0
小蚂蚁学习C语言(23)——C语言结构体——结构体的基本介绍

结构体 为什么需要结构体? 为了表示一些复杂的事务,而普通的基本类型变量无法满足实际要求 什么叫结构体? 把一些基本类型数据结合在一起形成一个新的符合数据类型,这个叫做结构体 如何定...

嗜学如命的小蚂蚁
2015/12/19
56
0
关于c语言结构体偏移的一点思考

前言 相信大家在c语言程序开发的过程一定都使用过结构体,那么不知你对结构体中成员变量偏移这块是如何理解的?本文将和大家一起分享下,本人最近关于c语言中结构体偏移的一些思考和总结。 ...

算法与编程之美
2013/06/25
0
23
C语言编程学习程序解析:数据类型和函数返回值解析

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
05/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

css hack

浏览器的兼容性一直是个头疼的问题,使用“欺骗”技术可使各个浏览器效果一致,花了些时间整理了各个浏览器的HACK,主要包括IE系列和最新版本的Chrome、Safari、Firefox、 Opera,比较全面的...

kitty1116
16分钟前
0
0
zookeeper脑裂问题

一、为什么zookeeper要部署基数台服务器? 二、zookeeper脑裂(Split-Brain)问题 2.1、什么是脑裂? 2.2、什么原因导致的? 2.2、zookeeper是如何解决的? 一、为什么zookeeper要部署基数台...

tantexian
22分钟前
1
0
Spring事务传播行为详解

前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的...

码代码的小司机
32分钟前
2
0
Android设备通过fastboot刷入TWRP

方法一:通过fastboot刷入TWRP的方式 首先去TWRP官网下载TWRP安装文件https://twrp.me/Devices/ 1.进入bootloader adb reboot bootloader 也可在开机时,同时按住电源键+音量减,进入bootloa...

robslove
37分钟前
0
0
为何译为“东家机”和“宾客机”

学习过虚拟化、云计算的人大概都知道,并且都在自己的电脑上安装KVM,如下图所示: 什么情况?不过是在物理机的Windows 10上安装了VMware;在VMware上安装了Linux CentOS 7操作系统;又在其上...

大别阿郎
51分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部