结构体变量的两种初始化方式
结构体变量的初始化
- 定义时初始化
- 定义之后初始化
结构体白能量的初始化方式有两种,可以在定义的时候或定义之后对结构体变量进行初始化。
定义时初始化
一般情况下我们都是在定义的时候对它进行初始化,因为那样比较方便。如果定义之后再进行初始化,那就只能一个一个成员进行赋值,就同数组一样。
下面先介绍如何在**定义的时候进行初始化。在定义结构体变量时对其进行初始化,只要用大括号“{}”括起来,然后按结构体类型声明时各项的顺序进行初始化即可。**各项之间用逗号分隔。如果结构体类型中的成员也是一个结构体类型,则要使用若干个“{}”一级一级地找到成员,然后对其进行初始化。
# include <stdio.h>
struct AGE
{int year;int month;int day;
};
struct STUDENT
{char name[20];int num;struct AGE birthday;float score;
};
int main(void)
{struct STUDENT student1 = {"小明", 1207041, {1989, 3, 29}, 100}; //结构体在定义时初始化return 0;
}
注意,同字符、字符数组的初始化一样,如果是字符那么就用单引号括起来,如果是字符串就用双引号括起来。
定义之后初始化
第二种方式是定义后再初始化,我们将上面的程序改一下即可:
# include <stdio.h>
# include <string.h>
struct AGE
{int year;int month;int day;
};
struct STUDENT
{char name[20]; //姓名int num; //学号struct AGE birthday; /*用struct AGE结构体类型定义结构体变量birthday, 即生日*/float score; //分数
};
int main(void)
{struct STUDENT student1; /*用struct STUDENT结构体类型定义结构体变量student1*/strcpy(student1.name, "小明"); //不能写成&student1student1.num = 1207041; student1.birthday.year = 1989;student1.birthday.month = 3;student1.birthday.day = 29;student1.score = 100;printf("name : %s\n", student1.name); //不能写成&student1printf("num : %d\n", student1.num);printf("birthday : %d-%d-%d\n", student1.birthday.year, student1.birthday.month, student1.birthday.day);printf("score : %.1f\n", student1.score);return 0;
}
结构体变量的两种初始化方式相关推荐
- 初始化一个java空数组_Java 数组的两种初始化方式
一.数组 1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道数组的首元素的内存地址,要查找的元素只要知道下标,就可以快速的计算出偏移量,通过首元素内存地址加上偏移量,就 ...
- python定义字符串变量有两种常用方式_Python 1基础语法二(标识符、关键字、变量和字符串)...
一.标识符 标识符就是程序员自己命名的变量名.名字需要有见名知义的效果,不要随意起名 :比如 a=1 a是个变量,a这个变量名属于标识符 1 company = '小米 2 employeeNum = ...
- C语言结构体变量在定义时初始化
C语言结构体变量在定义时就将其初始化的格式如下 struct struct_name struct_variable = { .member1 = xxx, .m ...
- 【C 语言】结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )
文章目录 一.结构体类型定义 二.结构体类型别名 三.结构体类型变量声明 1.使用结构体类型 ( 别名 ) 声明变量 2. 定义隐式结构体时声明变量 3.定义普通结构体时声明变量 二.完整代码示例 一 ...
- 定义结构体变量的三种方式
#include <stdio.h>//定义结构体的三种方式,推荐使用第三种//第一种 struct student1 {int age;char name[20];float score ...
- C语言结构体自动初始化实现,C语言中结构体(struct)的几种初始化方法
本文给大家总结的struct数据有3种初始化方法 1.顺序 2.C风格的乱序 3.C++风格的乱序 下面通过示例代码详细介绍这三种初始化方法. 1)顺序 这种方法很常见,在一般的介绍C的书中都有介绍. ...
- iOS 关于使用xib创建cell的两种初始化方式
为什么80%的码农都做不了架构师?>>> 方法一: 第一步: [self.collectionView registerNib:[UINib nibWithNibName:@& ...
- 【C语言】结构体变量定义、初始化、使用
目录 前言 一.声明"结构体类型" 二.定义结构体变量 方法 1 先声明结构体类型,再定义结构体变量 方法 2 声明类型的同时定义变量 *方法 3 不指定结构体名(结构体标记), ...
- 【C语言】结构体类型和结构体变量(字节对齐)
目录 一.结构体类型定义 二.结构体变量的定义 ①先定义结构体类型,再定义结构体变量 ②在定义结构体类型的同时,定义结构体变量 ③直接定义结构体变量 三.结构体变量的内存分配 四.结构体变量的初始化 ...
最新文章
- 进化深度神经网络是推动技术发展的强劲动力
- 专访东软杨纪文:深入业务做好移动安全防护
- linux中yum进程占cpu百分之九十,在Deepin Linux系统中kworker进程占用CPU达到100%的解决...
- SpringBoot整合WebSocket时调用service和mapper的方法
- Python解决数独
- 奇虎360:说爱你不容易的“母婴平台”故事
- 用C#操作word替换字符,用spire
- NUMA的取舍与优化设置
- NumPy - np.random.multivariate_normal()
- linux 每周日执行脚本,Linux任务计划和周期性任务执行
- 并发服务器设计思路,参考apache学习UDP和QoS,研究成果
- Uninstalling ASP.NET MVC 1.1 after installing Visual Studio 2010 beta 2
- 求两条直线(线段)的交点
- python3 print
- 使用Grafana+loki+promtail入门级部署分布式日志系统(windows环境)
- linux nfs acl 特定ip,Linux NFS配置
- ubuntu20.04离线安装python2.7.17
- NTFS下的USN日志文件研究
- Flutter ListView滚动到指定条目
- mysql截取字符串后缀_Mysql字符串截取函数SUBSTRING的用法说明
热门文章
- 2017 网易游戏互娱游戏研发4.21(offer)
- 同期收治患者住院天数_(完整版)DDD值算法
- bcdedit添加linux引导,利用Bcdedit创建Linux系统引导
- python判断对错题_Python爬虫自动化获取华图和粉笔网站的错题(推荐)
- Singularity 快速上手, 带你飞
- 【Java 后端接收前端的富文本数据,其中标签样式数据丢失解决】
- 阿里食堂替程序员出了口恶气:油炸产品经理!
- G-sensor概述及常用芯片整理(转)
- 棋牌游戏支付接口H5支付宝微信
- 网络字节序与主机字节序的相互转换