C语言 结构体篇
结构体:是一种构造类型 它是由若干成员组成的 其中每一个成员都可以是一个基本数据类型或者又是一个构造类型
定义结构体变量后,系统就会为其自动分配内存
为了便于更大的程序便于修改和使用 常常将结构体类型的变量声明在一个头文件中 这样在其他源文件中如果需要使用该结构体类型就可以用#include命令将该头文件包含到源文件中
结构体的定义:
(1) 常用的一种定义方式
struct 结构体名 {
成员列表;
};
(2)定义结构体类型的同时,定义该类型的变量
struct 结构体名{
成员列表;
}变量1,变量2; 注意此处大括号这里没有;号的 当定义完变量后才有分号;
(3)不定义结构体名 (不推荐这种方式 如果要使用该结构体类型的变量 就只能在定义结构体的时候 定义该类型都变量了)
struct {
成员列表;
}变量1,变量2;
2.结构体的引用
定义好结构体后 当然是开始使用结构体拉
引用的方式:
(1)通过成员运算符引用结构体 " . "
语法:结构体变量名.要引用的成员
例子:
#include<stdio.h>
int main()
{
//定义一个People类型的结构体
struct People{
char name[];//名字
char sex[];//性别
int age;//年龄
int Class;//班级
}me;
//将me声明为People类型的结构体变量 printf("Please Input Your Name\n");
scanf("%s", &me.name);
printf("Please Input Your sex\n");
scanf("%s", &me.sex);
printf("Please Input Your age\n");
scanf("%d", &me.age);
printf("Please Input Your Class\n");
scanf("%d", &me.Class); printf("%s", me.name);
printf("%s", me.sex);
printf("%d", me.age);
printf("%d", me.Class); getchar();
getchar();
return ;
}
程序定义个一个叫做People结构体类型 然后将me定义为People结构类型的变量 然后对me结构体变量中的成员进行 键盘赋值 最后输出
C语言 结构体篇的更多相关文章
- C语言结构体篇 结构体
在描述一个物体的属性的时候,单一的变量类型是无法完全描述完全的.所以有了灵活的结构体变量. 结构体变量从意义上来讲是不同数据类型的组合,从内存上来讲是在一个空间内进行不同的大小划分. 1.1 结构体类 ...
- 读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组
原文链接:C语言结构体里的成员数组和指针 复制例如以下: 单看这文章的标题,你可能会认为好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Lar ...
- 漫谈C语言结构体struct、公用体union空间占用
先用代码说话: #include<stdio.h> union union_data0{ int a ;//本身占用4个字节 char b ;//本身占用1个字节 int c ; }; u ...
- 解析C语言结构体对齐(内存对齐问题)
C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...
- 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符
[源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...
- Go语言结构体(struct)
Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...
- C语言结构体定义的几种方法
什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量.指针或数组等,用以实现较复杂的数据 ...
- 对嵌入式开发C语言结构体的一点总结
今天冬至居然不上班,公司的良心啊!这回有心情写博客和日志了,好了,废话不多说.直接看下文: 鉴于嵌入式开发过程中,C语言结构体的使用当然是必不可少.话说,基础什么的比你会更牛逼的算法更重要,基础不牢, ...
- C语言结构体变量私有化
操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 问题描述 C语言结构体定义中的变量默认是公有(Public)属性,如果实现成员变量的私有(Private)化? 解决方案 ...
随机推荐
- 【09】node 之 fs流读写
前面我们已经学习了如何使用fs模块中的readFile方法.readFileSync方法读取文件中内容,及如何使用fs模块中的writeFile方法.writeFileSync方法向一个文件写入内容. ...
- bzoj 2749 - 外星人
Description 给定一个数的标准分解\(N= \prod_{i=1}^n p_i^{q_i}\) 其中\(p_i \le 10^5, q_i \le 10^9\) 求最小的\(x\)使得\(\ ...
- bzoj 1396 识别子串 后缀树+线段树
题目大意 给定一个长度\(\le100000\)的字符串 求每一个位置的最短识别子串 对于位置\(x\),能识别子串\(s[i...j]\)的条件是 1.\(i\le x \le j\) 2.\(s[ ...
- 【HDOJ5521】Meeting(最短路)
题意:有n个点,m个点集,每个点集中有e[i]个点,同一点集的点互相之间到达需要t[i]单位的时间,求min(max(dis(1,i),dis(i,n))),i属于[1,n] 输出最小值并増序输出所有 ...
- quartz的配置
Quartz.Net中的概念:计划者(IScheduler).工作(IJob).触发器(Trigger).给计划者一个工作,让他在Trigger(什么条件下做这件事)触发的条件下执行这个工作 将要定时 ...
- 搞定vim的窗口操作
最近在给学生演示数据结构代码时,发现用一般的方法总会有不方便,如果使用ide又觉得太浪费了,后来觉得用vim就够了,使用buffer总会需要页面调来跳出,学生看起来容易迷糊.所以就研究了下vim的窗口 ...
- Scrapy学习-23-分布式爬虫
scrapy-redis分布式爬虫 分布式需要解决的问题 request队列集中管理 去重集中管理 存储管理 使用scrapy-redis实现分布式爬虫 github开源项目: https://g ...
- EventBus 3.0: 入门使用及其使用 完全解析
前言 EventBus是greenrobot再Android平台发布的以订阅-发布模式为核心的开源库. EventBus翻译过来是事件总线意思.可以这样理解:一个个(event)发送到总线上, 然后E ...
- 详解Tomcat系列(一)-从源码分析Tomcat的启动
在整个Tomcat系列文章讲解之前, 我想说的是虽然整个Tomcat体系比较复杂, 但是Tomcat中的代码并不难读, 只要认真花点功夫, 一定能啃下来. 由于篇幅的原因, 很难把Tomcat所有的知 ...
- Azure CDN 服务详解
Azure CDN概述 Azure CDN(内容分发网络)是一种用于分发高带宽内容的全球CDN解决方案,它可以托管在Azure中,也可以通过在任何其他位置,借助Azure CDN,可以托管到任何其 ...