结构体变量的初始化

  • 定义时初始化
  • 定义之后初始化

结构体白能量的初始化方式有两种,可以在定义的时候或定义之后对结构体变量进行初始化。

定义时初始化

一般情况下我们都是在定义的时候对它进行初始化,因为那样比较方便。如果定义之后再进行初始化,那就只能一个一个成员进行赋值,就同数组一样。

下面先介绍如何在**定义的时候进行初始化。在定义结构体变量时对其进行初始化,只要用大括号“{}”括起来,然后按结构体类型声明时各项的顺序进行初始化即可。**各项之间用逗号分隔。如果结构体类型中的成员也是一个结构体类型,则要使用若干个“{}”一级一级地找到成员,然后对其进行初始化。

# 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;
}

结构体变量的两种初始化方式相关推荐

  1. 初始化一个java空数组_Java 数组的两种初始化方式

    一.数组 1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道数组的首元素的内存地址,要查找的元素只要知道下标,就可以快速的计算出偏移量,通过首元素内存地址加上偏移量,就 ...

  2. python定义字符串变量有两种常用方式_Python 1基础语法二(标识符、关键字、变量和字符串)...

    一.标识符 标识符就是程序员自己命名的变量名.名字需要有见名知义的效果,不要随意起名 :比如 a=1 a是个变量,a这个变量名属于标识符 1 company = '小米 2 employeeNum = ...

  3. C语言结构体变量在定义时初始化

    C语言结构体变量在定义时就将其初始化的格式如下 struct struct_name struct_variable = {     .member1            = xxx,     .m ...

  4. 【C 语言】结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )

    文章目录 一.结构体类型定义 二.结构体类型别名 三.结构体类型变量声明 1.使用结构体类型 ( 别名 ) 声明变量 2. 定义隐式结构体时声明变量 3.定义普通结构体时声明变量 二.完整代码示例 一 ...

  5. 定义结构体变量的三种方式

    #include <stdio.h>//定义结构体的三种方式,推荐使用第三种//第一种 struct student1 {int age;char name[20];float score ...

  6. C语言结构体自动初始化实现,C语言中结构体(struct)的几种初始化方法

    本文给大家总结的struct数据有3种初始化方法 1.顺序 2.C风格的乱序 3.C++风格的乱序 下面通过示例代码详细介绍这三种初始化方法. 1)顺序 这种方法很常见,在一般的介绍C的书中都有介绍. ...

  7. iOS 关于使用xib创建cell的两种初始化方式

    为什么80%的码农都做不了架构师?>>>    方法一: 第一步: [self.collectionView registerNib:[UINib nibWithNibName:@& ...

  8. 【C语言】结构体变量定义、初始化、使用

    目录 前言 一.声明"结构体类型" 二.定义结构体变量 方法 1  先声明结构体类型,再定义结构体变量 方法 2 声明类型的同时定义变量 *方法 3 不指定结构体名(结构体标记), ...

  9. 【C语言】结构体类型和结构体变量(字节对齐)

    目录 一.结构体类型定义 二.结构体变量的定义 ①先定义结构体类型,再定义结构体变量 ②在定义结构体类型的同时,定义结构体变量 ③直接定义结构体变量 三.结构体变量的内存分配 四.结构体变量的初始化 ...

最新文章

  1. 进化深度神经网络是推动技术发展的强劲动力
  2. 专访东软杨纪文:深入业务做好移动安全防护
  3. linux中yum进程占cpu百分之九十,在Deepin Linux系统中kworker进程占用CPU达到100%的解决...
  4. SpringBoot整合WebSocket时调用service和mapper的方法
  5. Python解决数独
  6. 奇虎360:说爱你不容易的“母婴平台”故事
  7. 用C#操作word替换字符,用spire
  8. NUMA的取舍与优化设置
  9. NumPy - np.random.multivariate_normal()
  10. linux 每周日执行脚本,Linux任务计划和周期性任务执行
  11. 并发服务器设计思路,参考apache学习UDP和QoS,研究成果
  12. Uninstalling ASP.NET MVC 1.1 after installing Visual Studio 2010 beta 2
  13. 求两条直线(线段)的交点
  14. python3 print
  15. 使用Grafana+loki+promtail入门级部署分布式日志系统(windows环境)
  16. linux nfs acl 特定ip,Linux NFS配置
  17. ubuntu20.04离线安装python2.7.17
  18. NTFS下的USN日志文件研究
  19. Flutter ListView滚动到指定条目
  20. mysql截取字符串后缀_Mysql字符串截取函数SUBSTRING的用法说明

热门文章

  1. 2017 网易游戏互娱游戏研发4.21(offer)
  2. 同期收治患者住院天数_(完整版)DDD值算法
  3. bcdedit添加linux引导,利用Bcdedit创建Linux系统引导
  4. python判断对错题_Python爬虫自动化获取华图和粉笔网站的错题(推荐)
  5. Singularity 快速上手, 带你飞
  6. 【Java 后端接收前端的富文本数据,其中标签样式数据丢失解决】
  7. 阿里食堂替程序员出了口恶气:油炸产品经理!
  8. G-sensor概述及常用芯片整理(转)
  9. 棋牌游戏支付接口H5支付宝微信
  10. 网络字节序与主机字节序的相互转换