struct定义:C语言允许用户自己建立有不同类型的数据组成的组合类型的数据结构,它被称为结构体。
例如:一个学生{性别,年龄,学号,姓名},花括号里面的称为结构体的子项,也称为结构体成员
struct student
{
char name[20]; //姓名为字符数组
int age; //年龄为整形
char sex[2]; //性别为字符
int num[10]; //学号为整型
}; //分号为结构体的结束标志
上述程序中struct为关键字不可省略,经过上面的指定struct student,就在本程序中是一个可以使用的合法类型名,它包括姓名,年龄,性别,学号。
定义结构体变量:先声明结构体类型,在定义该类型的变量
Struct Student-->结构体类型
student1,student2-->结构体变量
在定义结构体变量后,系统会为之分配内存单元。根据结构体类型中包含的成员情况分布。
例如上面有(20+4+2+40)=66;
struct sutdent
{
char name[20]; //姓名为字符数组
int age; //年龄为整形
char sex; //性别为字符
int num; //学号为整型
}student1.student2; //结构体变量student1,student2
struct 结构体名
{
成员列表;
}变量列表;
注意:
1.结构体类型与结构体变量是不同的概念。只能对变量赋值,取存或运算,而不能对结构体类型赋值等;在编译时,对结构体类型不分配内存,只对结构体变量赋值。
2.结构体类型中的成员可以与程序中的变量名相同,但是二者代表的对象不同。
3.结构体整变量中的成员,可以单独使用;
结构变量的初始化和引用
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
struct sutdent
{
char name[20]; //姓名为字符数组
int age; //年龄为整形
char sex; //性别为字符
int num; //学号为整型
}student1 = { "王小乔",18,'m',2021032700 }; //结构体变量student1
printf("name:%s\nage:%d\nsex:%c\nnum:%d", student1.name, student1.age, student1.sex, student1.num);
return 0;
运行结果:
name:王小乔
age:18
sex:m
num:2021032700
结构体变量引用方式
结构体变量名.成员名
scanf函数输入结构体体变量
用scanf输入结构体变量时,必须分别输入他们的成员值,注意,scanf函数中在成员Student1中,student.name没有&,这是应为数组名本身就代表地址。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
struct sutdent
{
char name[40]; //姓名为字符数组
int age; //年龄为整形
char sex; //性别为字符
int num; //学号为整型
}student1; //= { "王小乔",18,'m',2021032700 }; //结构体变量student1,student2 //分号为结构体的结束标志
scanf("%s %d %c %d", student1.name, &student1.age, &student1.sex, &student1.num);
printf("name:%s\nage:%d\nsex:%c\nnum:%d", student1.name, student1.age, student1.sex, student1.num);
return 0;
}
运行结果:
name:王小乔
age:18
sex:m
num:2021032700
文章浏览阅读363次。郭一璞 乾明 发自 凹非寺量子位 报道 | 公众号 QbitAI97岁,他还奋战在科研一线。John B. Goodenough,人称“足够好”老爷爷,刚刚加冕诺贝尔奖..._锂电池机器学习
文章浏览阅读675次。该目录为Android开发秘籍学习笔记关于截取物理按键事件和构建菜单_安卓开发重写keycode电源键
文章浏览阅读5.5k次。Windows 自启动项整理_windows查看自启动项
文章浏览阅读2.2k次。解决问题:如题。主要步骤:这里直接就用 Windows 自带的字体作为例子。(注意版权问题)存放字体的路径一般在 /C/Windows/Fonts 。直接按上图的箭头把字体文件拖入 UE 的内容浏览器完事,选择 Yes All 。导入成功就可以直接在 UI 的 Text 使用或者其他任何需要字体的地方。......_ue5 ui中文字体 ftextblockstyle
文章浏览阅读217次。一、ECMAScript1. 它是一种由ECMA组织(前身为欧洲计算机制造商协会)制定和发布的脚本语言规范2. 而我们学的 JavaScript 是ECMA的实现, 但术语ECMAScript和JavaScript平时表达同一个意思3. JS包含三个部分: 1). ECMAScript(核心) 2). 扩展==>浏览器端 BOM(浏览器对象模型) ..._原型对象扩展 域
文章浏览阅读4k次。Nginx 隐藏版本信息在一般的应用场景中我们需要隐藏掉Nginx的版本信息,因为攻击者可能会根据版本信息中的版本去找到相关版本的漏洞,然后利用这个漏洞对服务器进行攻击。http { #不显示版本号 server_tokens off;}配置前效果展示添加配置的效果如下:ps:如果想要将响应头中的server中的nginx修改成其它的值,需要修改源文件。 vi src/http/ngx_http_header_filter_module.c # 49-50行// 内_nginx漏洞
文章浏览阅读102次。 网络流基本知识就不在这里阐述了。 算法实现题 8-1 飞行员配对方案问题 问题描述: 第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出 的每一架飞机都需要配备在航行技能和语言上能互相配合的 2 名飞行员, 其中 1 名是英国飞 行员,另 1 名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名..._对于给定的无向图g,由文件input.txt给出输入数据,程序运行结束时,将计算出的最小
文章浏览阅读44次。第一章:数据类型数值类型(整数类型、浮点数类型)日期时间类型字符串和二进制类型其他数据类型*数值类型包括整数型和浮点型。 整数型数据:只能存储整数!最常用的整型数据类型是INT型。 浮点型数据:可以存储整数和小数,但都带有小数点。最常用的浮点型数据类型是FLOAT型。*日期时间类型: 日期型:用于保存日期。DATE 时间性:用于保存时间。TIME ..._在开发过程中,经常会遇到重复使用某一功能的情况,为此,mysql引入了存储过程。存储
文章浏览阅读1.9k次。CSS字体-font1.CSS字体属性 属性名 含义 举例 font-family 设置字体类型 {font-family:“宋体”;} font-size 设置字体大小 {font-size:12px;} font-style 设置字体风格 {font-sty_css 文字内嵌入超链接
文章浏览阅读304次,点赞10次,收藏10次。小编在这里分享些我自己平时的学习资料,由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!程序员代码面试指南 IT名企算法与数据结构题目最优解这是” 本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一-痛点, 本书选取将近200道真实出现过的经典代码面试题,帮助广“大程序员的面试准备做到万无一失。“刷”完本书后,你就是“题王”!
文章浏览阅读1.4w次。java实现文件的上传和下载本文是基于Windows 10系统环境,实现文件的上传和下载:Windows 10MyEclipse 10一、文件上传(1) 文件上传的条件提交方式:post表单中有文件上传的表单项: input type="file"文件上传类型:enctype="multipart/form-data"(2) FileUpload组件文件上传功能开发..._java脚本语言使用字节流实现udp实现文件的上传和下载
文章浏览阅读2.1k次。原文:http://zh.wikipedia.org/wiki/%E5%8F%8D%E6%A8%A1%E5%BC%8F 反面模式 维基百科,自由的百科全书(重定向自反模式)跳转到: 导航, 搜索 在软件工程中,一个反面模式(anti-pattern或antipattern)指的是在实践中明显出现但又低效或是有待优化的设计模式[1][2],是用来解决_反面模式