一、建立结构体类型

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结构体归纳的更多相关文章

  1. C语言-06复杂数据类型-04 结构体

    结构体的说明(构造类型) 数组:只能由多个相同类型的数据构成 结构体:可以由多个不同类型的数据构成 ,结构体的类型是不存在的,自己定义 int main() { // 1.定义结构体类型 定义类型的时 ...

  2. 自定义数据类型 C++ 结构体类型 共同体类型 枚举类型 类类型{}

    一.结构体类型 结构体类型,共用体类型,枚举类型,类类型等统称为自定义类型(user-defined-type,UDT). 结构体相当于其他高级语言中的记录(record);例如: struct St ...

  3. 编程C语言进阶篇——自定义数据类型:结构体

    一.结构体 定义方法: 结构名 变量名 特点: 两个同类型的结构变量可以相互赋值,但是结构变量之间不能使用"<","=="等运算符,如果使用则需要对运算符 ...

  4. Linux C语言结构体-学习笔记

    Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...

  5. matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段

    一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...

  6. Java JNA (三)—— 结构体使用及简单示例

    JNA简介 JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架(https://github.com/twall/jna).JNA提供一组Java工具类 ...

  7. 『GoLang』结构体与方法

    结构体 结构体类型 Go 通过结构体的形式支持用户自定义类型,或者叫定制类型. Go 语言结构体是实现自定义类型的一种重要数据类型. 结构体是复合类型(composite types),它由一系列属性 ...

  8. c语言结构体

    [C语言]21-结构体 本文目录 一.什么是结构体 二.结构体的定义 三.结构体变量的定义 四.结构体的注意点 五.结构体的初始化 六.结构体的使用 七.结构体数组 八.结构体作为函数参数 九.指向结 ...

  9. 【C语言入门教程】7.3 结构体指针的定义和引用

    C 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作.在学习结构指针之前,需要再次加深对指针的认识.声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针 ...

随机推荐

  1. docker压缩导入导出

    导出镜像 docker save <myimage>:<tag> | gzip > <myimage>_<tag>.tar.gz 导入镜像 gun ...

  2. 表单文本字段预期描述(placeholder="请输入产品名称"以及prompt:'输入价格')

    普通html文本标签设置: <input id="xxx" placeholder="请输入产品名称"/> 带有jQueryEasyUI插件的htm ...

  3. [Luogu P4145] 上帝造题的七分钟2 / 花神游历各国

    题目链接 题目简要:我们需要一个能支持区间内每一个数开方以及区间求和的数据结构. 解题思路:说道区间修改区间查询,第一个想到的当然就是分块线段树.数据范围要用long long.本来我是看到区间这两个 ...

  4. scrapy3 中间件的使用

    前情提要: 补充知识点: ua请求头库的使用 安装: pip install fake-useragent 使用: from fake_useragent import UserAgent ua = ...

  5. Java进阶知识24 Spring的事务管理(事务回滚)

    1.事务控制概述   1.1.编程式事务控制         自己手动控制事务,就叫做编程式事务控制.         Jdbc代码: connection.setAutoCommit(false); ...

  6. sizeof +数组名

    链接:https://www.nowcoder.com/questionTerminal/daa5422cb468473c9e6e75cc98b771de 来源:牛客网 sizeof一个数组名称的时候 ...

  7. 51nod 1060

    反素数定义:对于任意正整数 $n$, 其约数个数记为 $f(n)$, 如果某个正整数 $n$ 满足 对于任意正整数 $i, (0 < i < n)$, 都有 $f(i) < f(n) ...

  8. Vue-es6基础语法

    什么是ES6 ECMAScript 6 简称ES6, 在2015年6月正式发布~  ECMAScript 是JavaScript语言的国际标准. 我们本着二八原则,掌握好常用的,有用的~能让我们更快的 ...

  9. python 获取远程设备ip地址

    python2.7 #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter - # This program is ...

  10. 讨论SQLite数据库损坏与修复

      版权声明:博客将逐步迁移到 http://cwqqq.com https://blog.csdn.net/cwqcwk1/article/details/45541409 昨晚,朋友和我反馈SQL ...