7.2 结构体数组的定义和引用

当需要使用大量的结构体变量时,可使用结构体定义数组,该数组包含与结构体相同的数据结构所组成的连续存储空间。如下例所示:

struct student stu_a[50]; // 声明长度为 50 的结构体数组 stu_a

引用结构体数组中元素的一般形式为:

结构体数组名[n].成员名

[] 符号的优先级与.符号相同,适用于自左向右结合性,所以运算时首先获得的是结构体数组的元素,然后再获得该元素的成员。如果该成员是数组,引用该成员数组元素的一般形式为:

结构体数组名[n].成员名[n]。同理,如果该成员是结构体变量,引用形式为:结构体数组名[n].成员.子成员。依次类推,如何复杂的成员都可以被访问。如下例所示:

#include

int main(void)

{

struct student

{

char name[50];// 姓名

char dept[50];// 专业

long no;// 学号

float score[4];// 成绩

};

struct student stu_a[2] = {

"Tom", "Math", 2009001, 87.5, 70.5, 93, 91,

"Jerry", "Math", 2009002, 90, 78.5, 83.5, 66

};

int i;

for (i = 0; i < 2; i++)

{

printf("%8s %8s %ld %5.2f %5.2f %5.2f %5.2f\n",

stu_a[i].name,

stu_a[i].dept,

stu_a[i].no,

stu_a[i].score[0],

stu_a[i].score[1],

stu_a[i].score[2],

stu_a[i].score[3]

);

}

}

程序中声明了结构体数组 stu_a[],并在声明时用数据为其初始化。然后用 printf() 函数将结构体数组中的数据输出。

【C语言入门教程】4&period;5 指针变量的定义与引用

指针变量是包含内存地址的变量.一般的变量直接包含一个特定的值,而指针变量包含的是某一特定数据类型的内存地址.普通变量直接引用其中的值,指针变量则间接引用所指向内存地址中的值.指针变量在使用前需要声明与 ...

【C语言入门教程】7&period;1 结构体类型变量的定义和引用

前面学习了变量和数组这些简单的数据结构,它们的特点是必须使用规定的数据类型.例如数组被定义为整型后,它的所有存储单元都是由整型构成.现实生活中某一类事物的共同属性可能是由不同的数据类型组成的集合,或者 ...

智能合约语言 Solidity 教程系列6 - 结构体与映射

写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 本系列文章一部分是参考Solidity官方文档(当前最新版 ...

【C语言入门教程】7&period;3 结构体指针的定义和引用

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

C语言应用--数据类型定制一结构体数组

结构体定义成功后,其实和c语言内部的类型区别也不大了,自然可以用来定义结构体类型的数组了.我们根据结构体定义的方式不同,分别用多种方式定义结构体数组:

C语言入门(15)——结构体与数据抽象

大多数的计算机运算是对现实世界的模拟,如果想用计算机来模拟现实世界需要用到数据抽象的方法.所谓抽象是从实际的人.物.事和概念中抽取所关心的共同特征,,忽略非本质的细节,吧这些特征用各种概念精确的加以描 ...

C语言入门(14)——结构体

整数.字符.布尔值.浮点数这些数据类型都具有单一的值,这些可称为基本数据类型.但字符串是一个例外,它由很多字符组成,像这种由基本类型组成的数据类型称为复合数据类型,正如表达式和语句有组合规则一样,由基 ...

【C语言入门教程】4&period;1 一维数组

数组与指针涉及到数据在内存中的存储位置问题,数组由连续的存储单元组成,最低地址对应于数组的第一个单元,最高地址对应于数组的最后一个单元.指针是一种特殊的变量,该变量所存放的是内存地址,通过指针变量可访 ...

【C语言入门教程】4&period;8 指针数组

指针数组是一种特殊的数组,这类数组存放的全部是同一数据类型的内存地址.指针数组的定义形式为: 数据类型 *数组名[长度]; 例如: const char *c[4] = { "China&q ...

随机推荐

what&&num;39&semi;s deviceone

DeviceOne技术介绍 一.     DeviceOne是什么 DeviceOne(以下简称Do)是一个移动开发的平台或技术,与之对等的是Android移动开发技术,iOS移动开发技术,Windo ...

C&num;实现自动发送QQ消息

1.得打开需要发送的聊天窗口,最小化也可,聊天时不能是中文输入法2.然后AIO名就是窗口左上角的那个名称,括号和QQ号不要,那个名称可能是好友备注,群名称,讨论组名称等.3.发送消息要设置成按Ente ...

JavaScript Nested Function 的时空和身份属性

JavaScript 的function 不仅仅是一等公民,简直就是特殊公民.它有许多独特的特征: 1) 它是object,可以存储,传递,附加属性. 2) 它可以有lexical closure, ...

&lbrack;傻瓜版&rsqb; Redis在Windows下的开发环境配置步骤

redis默认运行在unix体系下,windows无法直接运行官方版.以下是几种解决方案, 一)Windows移植版.启动速度飞快,优先推荐使用. a) 2.6.12 是稳定版,我用64位版来做开发环 ...

vue监听scroll使用报错的解决办法

错误说明:在切换路由以后,依旧在其他页面触发了scroll有关的函数, 错误原因:在spa项目中,window对象是不变的,所以每次使用后需要销毁. 解决办法:vue的生命周期destroyed中销毁 ...

PL&sol;SQL 实现行列转换

这篇博文写的是简单的行列转换的,以一个具体的例子来给出. 以前在论坛上有人问过相关的问题,上面的回答五光十色,有很多是可行的,当然更多的是自以为很高端,实际却不着边际的回答.下面进入正题. part1 ...

dump解析入门-用VS解析dump文件进行排障

突然有一天部署在服务器的一个应用挂掉了,没办法只能进入服务器打开 [事件查看器]查看下,好不容易找到了打开后一脸懵逼 事件查看器查到的内容根本对我们排障没有任何作用. 在这个时候如果有对应的dump文 ...

getElementsByClassName方法的封装

Element.prototype.getElementsByClassName = function(searchClass,node,tag){ if(document.getElementsBy ...

codeforce864d

D. Make a Permutation! time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

c语言中结构体数组的引用,【C语言入门教程】7.2 结构体数组的定义和引用相关推荐

  1. C语言中可以用字符串常量来,C语言字符串详解

    原标题:C语言字符串详解 字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中.同时,C 语言提供了一系列库函数来对操作字符串, ...

  2. c语言中存贮班级学生的变量,C语言----变量教案.docx

    C语言----变量教案 课 题 2.2 常量和变量----变量 课型 理实一体化 授课班级 高二计算机(升学班) 课时 2 教学目标 复习巩固C语言中常量的应用: 掌握C语言中变量的命名规则及应用. ...

  3. .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)

    .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图 ...

  4. c语言中的下标变量是什么,c语言引用数组元素时其数组下标的允许的数据类型是什么...

    c语言引用数组元素时其数组下标的允许的数据类型是什么 发布时间:2020-07-30 11:56:52 来源:亿速云 阅读:621 作者:Leah c语言引用数组元素时其数组下标的允许的数据类型是什么 ...

  5. c语言中的下标变量是什么,c语言中数组的下标从什么开始?

    c语言中数组的下标从0开始. 数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示. 例如:a[0]就表示名字为a的 ...

  6. 对于c语言中局部变量描述正确的是,c语言复习卷带答案.docx

    c语言复习卷带答案 <复习卷>试卷总分题号一二三四五题分得分得分一.单选题(每题1分,共计30分)1.下列选项中,不合法的变量是(D).A.int x = 3;B.char ch = 'c ...

  7. C语言中 二进制有哪几个运算符 (举例),C语言中位运算符有哪些

    前言继承是OOP设计中的重要概念.在C++语言中,派生类继承基类有三种继承方式:私有继承(private).保护继承(protected)和公有继承(public).一.继承规则继承是C++中的重要特 ...

  8. c语言中指针往内存写值,C语言编程常见问题解答之指针和内存分配

    指针为C语言编程提供了强大的支持--如果你能正确而灵活地利用指针,你就可以直接切入问题的核心,或者将程序分割成一个个片断.一个很好地利用了指针的程序会非常高效.简洁和精致. 利用指针你可以将数据写入内 ...

  9. asin c语言中 返回值范围_大学C语言考试易错知识点总结

    作者:cggwz 来源:https://blog.csdn.net/cggwz/article/details/103740713?utm_medium=distribute.pc_relevant. ...

  10. 在c语言中 函数的作用是什么,C语言程序中函数的定义

    C语言程序中函数的定义 C语言的函数问题是困扰很多学者的问题的,c程序中什么是函数呢?下面啦小编为大家精心推荐的c程序中函数的定义,希望能够对您有所帮助. C语言读书笔记--函数 先来看看函数的一般形 ...

最新文章

  1. c++控制台下输出sin函数图形
  2. html div实时监听,jquery实时监听div高度变化
  3. ubuntu nginx安装
  4. JAVA解决生产消费者_Java常用三种方式解决生产者消费者问题(详细)
  5. 7-4 吃货的最短路径 (10 分)
  6. Oracle数据库安装图解
  7. ***引发《唐山大地震》 在线下载瞬间中毒
  8. goldendb mysql_golden数据库
  9. mac m1搭建java opencv 环境(遇到的坑记录)
  10. 自制题库答题考试软件小程序开发,把题库导入小程序里,javascript小程序
  11. 大电流dcdc降压芯片20a_电源篇 - 降压电路(DCDC,非隔离
  12. 公私钥保存成PEM文件
  13. 搜索引擎的概念鄂州_搜索引擎的基本概念
  14. 一、Java11安装
  15. 基于贪婪的高效Lidar-SLAM特征选择(ICRA2021)
  16. Python练习题答案: 杰克的家【难度:2级】--景越Python编程实例训练营,1000道上机题等你来挑战
  17. 3D 电影、全息显示这些技术如何骗过我们的眼睛?
  18. 福晟集团用创新理念引领发展新趋势
  19. 苹果icloud文件服务器,你真的会用苹果iCloud吗?这7个隐藏功能,你未必全知道...
  20. 13.DoS防御----BeEF浏览器渗透----暴力破解之美杜莎---DNS指南

热门文章

  1. ES7-12内容详解
  2. 嵌入式培训学校怎么选?嵌入式学习还有就业优势吗?
  3. 爱因斯坦E=mc^2公式的推导
  4. js中国标准时间转化为年月日,时间戳
  5. 我的一个BLOGER?!
  6. 更加智能的Wisdom Chain来了
  7. php的soapclient,如何使用SoapClient类进行PHP SOAP调用
  8. 第三章--第三节:列表
  9. 程序员画图两大神器,贴心老
  10. 名爵如何解除限速_电动车解除限速的三种方法,师傅一次性全教给