建立自己的数据类型——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 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作.在学习结构指针之前,需要再次加深对指针的认识.声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针 ...
随机推荐
- Maven 设置阿里镜像
Maven 默认的中央仓库速度慢,可以考虑换成阿里的镜像.修改方式主要有两种. 1.针对所有项目修改中央仓库Maven 提供了全局配置文件 settings.xml 针对所有项目有效,位置是在安装目录 ...
- office+visio2016版本一同安装说明
安装所需软件: Office或者visio镜像 比如:cn_visio_professional_2016_x86_x64_dvd_6970929.iso 下载网址:http://pan.baidu. ...
- Mac: ld: library not found for -lgcc_s.10.4
Mac: ld: library not found for -lgcc_s.10.4 Checking for cc... ld: library not found for -lgcc_s.1 ...
- Kafka 消息队列系列之分布式消息队列Kafka
介绍 ApacheKafka®是一个分布式流媒体平台.这到底是什么意思呢?我们认为流媒体平台具有三个关键功能:它可以让你发布和订阅记录流.在这方面,它类似于消息队列或企业消息传递系统.它允许您以容 ...
- Oracle 后台进程(六)PMON进程
一.PMON简介 二.PMON的工作内容如下: 1.监控后台进程运行状况 2.如果某些进程异常中断,PMON去释放会话资源以及占用的锁LOCK 3.更新事务表的标志以及清除事务XID的标记 4.清除异 ...
- 【概率论】3-5:边缘分布(Marginal Distribution)
title: [概率论]3-5:边缘分布(Marginal Distribution) categories: Mathematic Probability keywords: Marginal p. ...
- 泰乐事(Telos)白皮书中文版 <一> 泰乐事项目(未完成)
泰乐事项目 一个可持续发展的去中心化EOSIO网络 EOS系统在设计上为人们带来了令人惊喜的一种实现新经济模式的承诺.然而很不幸,其高度中心化的运营正不断地破坏这种承诺.90%的EOS代币掌握在仅仅1 ...
- ROS indigo下Kinect v1的驱动安装与调试
ROS indigo下Kinect v1的驱动安装与调试 本文简要叙述了在ROS indigo版本下Kinect v1的驱动安装与调试过程. 1. 实验环境 (1)硬件: 台式机和Kinect v1 ...
- JAVA基础知识|内部类
一.什么是内部类? 内部类(inner class)是定义在另一个类中的类 为什么使用内部类? 1)内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据 2)内部类可以对同一个包中的其他类隐藏 ...
- 使用express-session实现登录效果
本文为后端练兵内容,重复造轮子,重复造轮子才能有经验,才能生出花来. 本次练兵,采用的是数据库保存账户密码,后端通过查数据库的方式,实现账号和密码的校验. 如果验证成功,将登陆状态保存在session ...