建立自己的数据类型——C结构体归纳
一、建立结构体类型
1、申明结构体类型
struct 结构体名
{
成员表列(类型名 成员名;);
}; 例如:
struct Person
{
char name;
int age;
char sex;
};
//定义了一个结构体类型——struct Person
struct为关键字,不可省略
结构体类型如同其他类型一样,在c程序中具有和其他类型相同的地位,就如同 int(整数类型) char(字符类型)一样
Zu:结构体名可以自由命名,成员表列也可以由现实情况自由定义。书写格式固定,内容自定义。
2、定义结构体类型变量
前言:
1)程序运行的时候只会对变量进行操作,而不会对类型进行操作,(比如,你什么时候对int double 进行过运算,赋值呢,对吧)所以我们要先定义变量,然后才能对其进行操作。
2)编译的时候对类型是不分配空间的,只会对变量分配存储空间。
3)结构体中的成员可以单独使用,作用与地位相当于普通变量。
4)要遵循:先定义结构体类型,后定义结构体变量。
三种方法定义结构体变量:
1)结构体类型名 变量名;
(类似于:类型名 变量名;)
struct Student
{
char name;
int age;
};//定义结构体类型 struct Student student1,student2;//定义了 student1,student2两个结构体变量 struct Student students[];//定义了一个结构体数组,长度为5
结构体类型也可以定义数组。
2)申明结构体类型的同时定义变量
struct Student
{
char name;
int age;
}studen1,student2;//在定义struct Studentt这个结构体类型的同时定义了studen1,student2两个struct Student结构体变量 struct 结构体名
{
变量表列;
}变量名表列; //结构体数组也可这样定义
struct Student
{
char name;
int age;
}studens[5];//定义了一个结构体数组,长度为5
(struct 结构体名) 合起来称作一个结构体类型。
3)不定义类型名而直接定义结构体类型变量
无名结构体无法再次定义此类结构体变量。
strcut
{
char name;
int age;
}student1,student2; //意义与上面的相同
Zu:该方式的定义方法意义不大,使用很少。
3、结构体变量的初始化和使用
这部分比较简单,不做介绍,任何一本c语言教科书都会进行讲解。
4、结构体指针也不做讲解。
建立自己的数据类型——C结构体归纳的更多相关文章
- C语言-06复杂数据类型-04 结构体
结构体的说明(构造类型) 数组:只能由多个相同类型的数据构成 结构体:可以由多个不同类型的数据构成 ,结构体的类型是不存在的,自己定义 int main() { // 1.定义结构体类型 定义类型的时 ...
- 自定义数据类型 C++ 结构体类型 共同体类型 枚举类型 类类型{}
一.结构体类型 结构体类型,共用体类型,枚举类型,类类型等统称为自定义类型(user-defined-type,UDT). 结构体相当于其他高级语言中的记录(record);例如: struct St ...
- 编程C语言进阶篇——自定义数据类型:结构体
一.结构体 定义方法: 结构名 变量名 特点: 两个同类型的结构变量可以相互赋值,但是结构变量之间不能使用"<","=="等运算符,如果使用则需要对运算符 ...
- Linux C语言结构体-学习笔记
Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...
- matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段
一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...
- Java JNA (三)—— 结构体使用及简单示例
JNA简介 JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架(https://github.com/twall/jna).JNA提供一组Java工具类 ...
- 『GoLang』结构体与方法
结构体 结构体类型 Go 通过结构体的形式支持用户自定义类型,或者叫定制类型. Go 语言结构体是实现自定义类型的一种重要数据类型. 结构体是复合类型(composite types),它由一系列属性 ...
- c语言结构体
[C语言]21-结构体 本文目录 一.什么是结构体 二.结构体的定义 三.结构体变量的定义 四.结构体的注意点 五.结构体的初始化 六.结构体的使用 七.结构体数组 八.结构体作为函数参数 九.指向结 ...
- 【C语言入门教程】7.3 结构体指针的定义和引用
C 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作.在学习结构指针之前,需要再次加深对指针的认识.声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针 ...
随机推荐
- 2019HDU多校第四场 K-th Closest Distance ——主席树&&二分
题意 给定 $n$ 个数,接下来有 $q$ 次询问,每个询问的 $l, r, p, k$ 要异或上一次的答案,才是真正的值(也就是强制在线).每次询问,输出 $[l, r]$ 内第 $k$ 小的 $| ...
- P4568 [JLOI2011]飞行路线 分层图最短路
思路:裸的分层图最短路 提交:1次 题解: 如思路 代码: #include<cstdio> #include<iostream> #include<cstring> ...
- 【基础算法-树状数组】入门-C++
目录 基本定义 如何理解树状数组 主要操作 @ 基本定义 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构. ...
- the schema version of 'microsoft.aspnet.mvc' is incompatible with version of nuget
Nuget versioning issue with package restore http://stackoverflow.com/questions/12035976/nuget-versio ...
- controller层直接通过server类调用mapper的通用方法
自己写的方法没有,但是逆向生成的server类会有继承maybatis-plus的框架 与下图的配置有关
- Comet OJ - Contest #2 (D 错综的光影所迷惑的思念是) 容斥计数
题意:给定一颗 $n$ 个节点的树,定义 $dis(x,y)$ 为树上点 $x$ 到 $y$ 的路径经过的边数. 定义一个点集 $S$ 的 $f(S)$ 为 $f(S)=max\left \{dis( ...
- nodejs基础(管道、流)实现:复制、压缩、加密、解压,解密,写入文件
stream流 都是events.EventEmitter的一个实例,都可以来创建自定义事件(也就是说,流是一个事件的实例) 在nodejs中 对http的请求与响应都是用流来实现的,请求就是一个输入 ...
- c++ 生成容器元素生成随机数
// random_shuffle example #include <iostream> // cout #include <algorithm> // random_shu ...
- LOJ #6669 Nauuo and Binary Tree (交互题、树链剖分)
题目链接 https://loj.ac/problem/6669 题解 Orz yyf太神了,出这种又有意思又有意义的好题造福人类-- 首先\(n\)次询问求出所有节点的深度. 考虑按深度扩展(BFS ...
- springboot的jar在linux运行
springboot项目使用maven打包成jar包,如何在linux优雅部署?平时启动项目使用java -jar命令,关闭程序需要查询pid再查杀进程,这样都太麻烦了,今天发现一个博客已经写好的脚本 ...