一、结构体类型定义。

结构体类型和数组类型一样,需要由程序员定义,必须限定以后使用。

struct 类型标识符
{类型名 成员名;类型名 成员名;...
};

其中,struct 是结构体类型定义的关键字,他与其后用户指定的类型标识符共同组成结构体类型名。例如学生结构体类型定义如下:

struct st_type
{char num[7];char name[20];char sex;int age;float score;char address[30];
};

说明:(1)定义结构体类型只是规定了这种数据类型的模型,在编译时并不赋给他存储空间,所以绝对不允许对定义的结构体类型进行存取数据的操作。

(2)结构体成员可以是简单变量、数组或是另一个结构体变量。例如:

struct d_type
{int year;int minth;int day;
};
struct s_type
{char num[7];char name[21];char sex;struct d_type birthday;float score;char address[41];
};

(3)结构体成员名可以与程序中其他变量名同名,系统会自动识别它,不会混淆。

(4)结构体类型定义可以放在函数外部(全局有效),放在函数内部(只在本函数内部有用)

二、结构体变量。

1、结构体变量的定义。

(1)一般形式定义。

struct 标识符
{结构体成员表;
};
struct 标识符 结构体变量;

(2)在定义类型的同时,定义变量。

struct 标识符
{结构体成员表;
}结构体变量名表;

2、结构体变量的初始化。

注意:初始化个数不得超过成员数,若小于成员数,则剩余成员将被初始化为默认值。

3、结构体变量的引用。

对结构体变量整体的引用限制较大,只能对他进行一部分操作。

(1)可作为函数的形参,实参或是函数返回值等进行函数的数据传递。

(2)可以整体赋值,但是赋值号左边必须是结构体变量,右边必须的是同一种结构体类型的结构体变量或函数返回值,如:student1=student2;

(3)结构体变量成员的引用。

结构体变量名.成员名

三、结构体数组。(相同类型的结构体做元素就可以构成结构体数组,其中,每个元素内部含有不同类型的成员)

1、结构体数组定义类型。

struct st_type

{

int year;

int month;

int day;

};struct st_type s[3];//定义了一个结构体数组s,他有三个元素,数组中的各元素在内存中是连续存放的。

2、结构体数组初始化。

结构体数组在定义中也可以同时初始化。

结构体类型名 结构体数组名【数组长度】

3、用结构体数组存储学生信息,每个学生有姓名,学号,成绩。

#define N4

#include “stdio.h”

struct {int num;char name[11]; int score;}t,s[N];

main(){int i,j,k;print("请输入第一个学生的学号:");

scanf("%d",&k);}

四、结构体和函数。

1、结构体作函数参数。

结构体成员,可以作为函数实参,形参为与该成员同类型的变量。

void printf(struct st_type s)

{printf("输出: 姓名 性别 年龄 成绩");printf("%s%s%c",s.name,...)}

2、返回值为结构体类型的函数。

结构体类型名 函数名 (形参表)

3、typedef语句。

typedef语句可以为系统已经定义的简单类型(如int double float 等)另起一个名称。也可以为自己定义的结构体枚举等类型另起一个名称。

typedef 类型名 新类型名

如:typedef int INTEGER;就是将int类型名修改为INTEGER

使用typedef语句的优点:(1)可以缩写长的类型定义,使用便于理解的数据类型名,使程序简洁,可读性强。

(2)可将程序参数化,便于移植。

转载于:https://www.cnblogs.com/yjds/p/6507244.html

C程序范例(3)——结构体相关推荐

  1. c语言结构体共用体枚举实例程序,10-C语言结构体-共用体-枚举

    结构体是什么? 结构体和数组一样属于构造类型 数组是用于保存一组相同类型数据的,而结构体是用于保存一组不同类型的数组 定义结构体 在使用结构体之前必须先定义结构体类型,因为C语言不知道你的结构体中需要 ...

  2. 【头歌C语言程序与设计】结构体

    目录 写在前面 正文 第1关:结构体变量的初始化和引用 第2关:结构体排序 第3关:结构体存储数据 第4关:结构体存储学生信息 写在最后 写在前面 本文代码是我自己所作,本人水平有限,可能部分代码看着 ...

  3. 结构体怎么赋值_Go 经典入门系列 16:结构体

    点击上方蓝色"Go语言中文网"关注,每天一起学 Go 欢迎来到 Golang 系列教程的第 16 个教程. 什么是结构体? 结构体是用户定义的类型,表示若干个字段(Field)的集 ...

  4. 一文攻破结构体-C语言

    一文攻破结构体-C语言 1 什么是结构体 1.1 结构体类型 结构体(structure)是由不同类型数据组成的组合型的数据结构,可以看做变量的集合.结构体也是一个数据类型,就像和 int.char一 ...

  5. new 一个结构体数组_每天一个IDA小技巧(四):结构体识别

    之前提到IDA可以将一长串的数组数据声明变成一行数组声明,简化反汇编代码,对于结构体,IDA也同样支持通过各种设置工具来改善结构体代码的可读性. 这篇文章的目标是将[edx+10h]之类的结构体元素访 ...

  6. 7.IDA-创建结构体

    结构体分类 结构体的一个显著特点在于,结构体中的数据字段是通过名称访问,而不是像数组那样通过索引访问.不好的是,字段名称被编译器转换成了数字偏移量.结果,在反汇编代码清单中,访问结构体字段的方式看起来 ...

  7. 【C语言】结构体赋值

    结构体在 C 程序中使用的较为频繁,能对数据有一定的封装的作用.对一个结构体赋值时,经常采用的方式是,分别对其成员变量赋值.那么能否将一个结构体用赋值号("=")直接赋值给另一个结 ...

  8. java开发C编译器:结构体的解析和执行

    用java开发C语言编译器 结构体是C语言中,最为复杂的原生数据结构,它把多种原生结构结合在一起,形成一个有特点含义的数据结构,要实现一个完整的C语言编译器或解释器,就必须要拥有对结构体的解析能力,本 ...

  9. Linux C 深入分析结构体指针的定义与引用

    关于结构体的基础知识,网上书上都一大堆,这里就不赘述了,下面我们要学习的是结构体指针. 介绍结构体指针之前,先给大家看一个小程序: [cpp] view plaincopy #include < ...

  10. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

最新文章

  1. CSS之布局(外边距的折叠)
  2. Sigma Function LightOJ - 1336[约数和定理]
  3. 吴恩达深度学习笔记(67)-迁移学习(Transfer learning)
  4. java学习笔记-set
  5. 内存位置访问无效_万字长文——java内存模型之volatile深入解读
  6. Topic交换器-编写生产者
  7. CSS每日学习笔记(1)
  8. Android开发笔记(一百一十三)测试工具
  9. hot编码 字符one_使用字符级RNN进行名字分类
  10. Sentaurus入门(3):sde
  11. 腾讯云多媒体文件处理总结
  12. java_SSD3_实验报告_面向对象——多态
  13. C语言鸡兔同笼应用题100道,C语言应用题。
  14. mysql binlog 查看pos点_如何寻找主库binlog和pos点
  15. Linux关闭防火墙命令
  16. Lipschitz条件
  17. Windows 环境下 Python 环境安装
  18. linux(安装在虚拟机)读取U盘
  19. BUGKU-成绩查询
  20. 人类面部表情数据集(12万张表情照片)

热门文章

  1. 我只是bug的搬运工之jsp 编辑预览时样式可以显示出来,而在浏览器浏览时无法显示出来!
  2. 那些让老板赞不绝口的可视化大屏,附模板和教程
  3. 5年数据总监主动辞职:那些没用可视化报表的人,后来都怎么样了
  4. Flex移动性能检查列表
  5. 饱和气压与温度的关系_气压和钓鱼的关系,冬天钓鱼还需要看气压吗?很多钓友都错了...
  6. 部队计算机考试题,2020军队文职计算机知识:计算机考试练习题(1)
  7. python items() 函数的使用(一分钟读懂)
  8. centos系统安装pycharm编辑器
  9. python调用数据库存储过程_python调用MySql存储过程
  10. 天下手游卡在获取服务器信息,天下手游召唤兽获取与洗练:新手必须知道的事情...