C语言结构体初始化教程

C语言结构体初始化

语法

struct structName varName = {fileldValue1, fileldValue2, fileldValue3};

参数

参数

描述

struct

结构体的关键字。

structName

结构体名。

varName

结构体变量名。

fileldValue1

结构体第一个字段对应的初始化值。

fileldValue2

结构体第二个字段对应的初始化值。

fileldValue3

结构体第三个字段对应的初始化值。

说明

我们分别使用了 fileldValue1 来初始化了结构体 varName 中的第一个字段的值,使用了 fileldValue2 来初始化了结构体 varName 中的第二个字段的值,fileldValue3 来初始化了结构体 varName 中的第三个字段的值。

使用这种方式初始化,我们只能按照顺序一个个的初始化结构体的成员。

C语言初始化结构体成员

语法

struct structName varName = {

.filed1 = value1,

.filed2 = value2,

.filed3 = value3

};

说明

我们分别使用了 value1 来初始化了结构体 varName 中的 filed1 字段,使用了 value2 来初始化了结构体 varName 中的 filed2 字段,value3 来初始化了结构体 varName 中的 filed3 字段。

使用这种方式初始化,我们可以按照任意的顺序初始化结构体的成员。

注意

使用这种方式初始化结构体成员使用的是 .filed1 = value1 的形式,且除了最后一个成员,其他的每一个成员的最后都要加一个逗号,即 ,。

最后一个成员不可以加逗号。

C语言初始化结构体成员

语法

struct structName varName = {

filed1 : value1,

filed2 : value2,

filed3 : value3

};

说明

我们分别使用了 value1 来初始化了结构体 varName 中的 filed1 字段,使用了 value2 来初始化了结构体 varName 中的 filed2 字段,value3 来初始化了结构体 varName 中的 filed3 字段。

使用这种方式初始化,我们可以按照任意的顺序初始化结构体的成员。

注意

使用这种方式初始化结构体成员使用的是 filed1 : value1 的形式,且除了最后一个成员,其他的每一个成员的最后都要加一个逗号,即 ,。

最后一个成员不可以加逗号。

案例

C语言顺序初始化结构体成员

顺序初始化结构体中的成员

#include

struct Car{

char *brand;

int price;

int maxSpeed;

};

void main(){

printf("嗨客网(www.haicoder.net)\n\n");

struct Car car = {"Benz", 100000, 256};

char *brand = car.brand;

int price = car.price;

int maxSpeed = car.maxSpeed;

printf("Init Brand = %s, Price = %d, MaxSpeed = %d\n", brand, price, maxSpeed);

}

程序运行后,控制台输出如下图所示:

我们首先,定义了一个结构体 Car,该结构体有三个成员,即一个

接着,我们使用了顺序初始化的方式,初始化了结构体 car 的三个成员,即分别将结构体 car 的 brand 字段初始化为 “Benz”、结构体 car 的 price 字段初始化为 100000、结构体 car 的 maxSpeed 字段初始化为 256。

C语言乱序初始化结构体成员

乱序初始化结构体中的成员

#include

struct Car{

char *brand;

int price;

int maxSpeed;

};

void main(){

printf("嗨客网(www.haicoder.net)\n\n");

struct Car car = {

.price = 900000,

.maxSpeed = 400,

.brand = "Benz"

};

char *brand = car.brand;

int price = car.price;

int maxSpeed = car.maxSpeed;

printf("Init Brand = %s, Price = %d, MaxSpeed = %d\n", brand, price, maxSpeed);

}

程序运行后,控制台输出如下图所示:

这次,我们在结构体里面,通过 “.FileldName” 的形式初始化了结构体的成员,使用这种方式初始化结构体的成员,不需要按照顺序,只需要在前面写上我们需要初始化的字段名即可。

最后,我们使用

C++风格结构体初始化

使用 C++ 风格来初始化结构体成员

#include

struct Car{

char *brand;

int price;

int maxSpeed;

};

void main(){

printf("嗨客网(www.haicoder.net)\n\n");

struct Car car = {

price : 900000,

maxSpeed : 400,

brand : "Benz"

};

char *brand = car.brand;

int price = car.price;

int maxSpeed = car.maxSpeed;

printf("C++ Style Init Brand = %s, Price = %d, MaxSpeed = %d\n", brand, price, maxSpeed);

}

程序运行后,控制台输出如下图所示:

这次,我们使用了 C++ 风格来初始化了结构体的成员。

C语言结构体初始化总结

在 C 语言中,我们要初始化一个结构体,有三种方法,即,顺序初始化、乱序初始化和 C++ 风格的初始化。

c语言 结构体 初始化,C语言结构体初始化相关推荐

  1. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  2. go结构体初始化_Go语言初始化结构体的成员变量

    结构体在实例化时可以直接对成员变量进行初始化,初始化有两种形式分别是以字段"键值对"形式和多个值的列表形式,键值对形式的初始化适合选择性填充字段较多的结构体,多个值的列表形式适合填 ...

  3. 【C 语言】结构体 ( 结构体类型变量初始化 | 定义变量时进行初始化 | 定义隐式结构体时声明变量并初始化 | 定义普通结构体时声明变量并初始化 )

    文章目录 一.结构体类型变量初始化 1.定义变量时进行初始化 2.定义普通结构体时声明变量并初始化 3.定义隐式结构体时声明变量并初始化 二.完整代码示例 一.结构体类型变量初始化 1.定义变量时进行 ...

  4. go结构体初始化_go语言基础之结构体普通变量初始化

    1.结构体 1.1.结构体类型 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性.显然单独定义以上变量比较繁琐,数据不便于管理. 结构体是一种聚合的数 ...

  5. c语言 结构体的,c语言之结构体

    c语言之结构体 1.结构体基础知识 C语言提供了两种类型的聚合数据类型(能够同时存储超过一个的单独数据),数组和结构.数则是相同类型的元素的集合,而结构也是一些值的集合,这些值称为它的成员,单一个结构 ...

  6. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...

    C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...

  7. c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体

    枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...

  8. c语言 结构体ppt,C语言知识学习结构体.ppt

    C语言知识学习结构体.ppt Chap 9 结构,9.1 输出平均分最高的学生信息 9.2 学生成绩排序 9.3 修改学生成绩,本章要点,什么是结构结构与数组有什么差别 有几种结构的定义形式,它们之间 ...

  9. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

    介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...

最新文章

  1. windows使用.NET CORE下创建MVC,发布到linux运行
  2. SAP RETAIL MM41维护商品主数据的时候可以维护分类数据
  3. 浅谈单片机程序设计中的“分层思想”
  4. SpringBoot--HelloWord
  5. python用户登录程序_「Python」每日一练:函数的应用之注册登录程序
  6. 。。。。。。想不通的ADO.NET。
  7. python(numpy,pandas4)——numpy中array合并和分割
  8. 少儿德国奎尔鱼油(QÜELL FISH OIL FOR JUNIOR )
  9. Git 教程学习--第三篇
  10. es大量数据导入效率优化
  11. linux远程执行命令
  12. Strusts2笔记6--拦截器
  13. 微信小程序图片转换成文字_怎么利用微信小程序把图片上的文字转到word文本中?...
  14. mongoDB 使用 mongoVue
  15. temp的作用c语言,temp的使用
  16. 秀米编辑器如何排版svg推文,以展开为模板讲解
  17. 深度学习 回声消除 AEC
  18. 什么是DNS服务器?
  19. 邓仰东专栏|机器学习的那些事儿(一)
  20. C#各语言版本特性介绍

热门文章

  1. SystemUI 勿扰模式下来电通知栏不显示通知
  2. ndi协议_NDI是什么协议,NDI传输协议技术原理方法
  3. 每日一题:讲一讲你理解的微服务架构?
  4. 成都市等2015年《清单计价定额》人工费调整的批复〔2016〕41
  5. 路由器实验-HSRP笔记
  6. 有大学生双修计算机专业和数学专业的吗,南开大学再现学霸班
  7. 【Jmeter】Oracle数据迁移,批量插入测试数据~
  8. 手机抓包工具--stream的安装与应用
  9. 毕业生入户深圳2023办理全流程
  10. [10.23]戴尔收购苹果?黄金笔记本曝光(转)