(三)结构体变量的引用
1.引用结构体变量成员
若定义了一个结构体变量和一个指向结构体变量的指针,则有以下三种引用形式:
(1)结构体变量.成员名            //利用成员运算符"."访问        //演示1
(2)(*结构体指针).成员名        //利用指针运算符"*"和成员运算符"."访问        //演示2
(3)结构体指针->成员名         //利用指针和指向运算符"->"访问        //演示2

2.引用整个结构体变量
相同类型的结构体变量之间可以进行整体赋值        //演示3

//结构体变量成员的引用演示1:结构体变量.成员名

#include<stdio.h>
int main()
{struct job_exam{unsigned num;char name[10];int exama;int examb;int total;}a = { 1501,"王虎",89,92 };a.total = a.exama + a.examb;    //结构体变量.成员名printf("编号   姓名   笔试   面试   总成绩\n");printf("%4u %6s %5d %6d %7d", a.num, a.name, a.exama, a.examb, a.total);return 0;
}

//结构体变量成员的引用演示2:(*结构体指针).成员名            结构体指针->成员名

#include<stdio.h>
int main()
{struct job_exam{unsigned num;char name[10];int exama;int examb;int total;}*p, s[3] = { {1501,"王虎",89,92},{1502,"李雪",87,96},{1503,"张扬",82,85} };p = s;      //结构体指针p指向结构体数组首地址printf("编号   姓名   笔试   面试   总成绩\n");//(*结构体指针).成员名for (int i = 0; i < 3; i++){(*p).total = (*p).exama + (*p).examb;printf("%4u %6s %5d %6d %7d\n", (*p).num, (*p).name, (*p).exama, (*p).examb, (*p).total);p++;}printf("\n");p = s;     //上一个for 循环使指针p的值发生了变化,此处再次重置为s(输出乱码我才想到。。)//结构体指针->成员名for (int i = 0; i < 3; i++){p->total = p->exama + p->examb;printf("%4u %6s %5d %6d %7d\n", p->num, p->name, p->exama, p->examb, p->total);p++;}return 0;
}

//演示3:引用结构体变量整体

#include<stdio.h>
int main()
{struct Student{char *name;int age;};struct Student stu_1 = { "李华",22 };struct Student stu_2 = stu_1;   //直接将结构体变量stu_1整体赋值给stu_2printf("%s的年龄是%d", stu_2.name, stu_2.age);return 0;
}

//随堂练习9-1
为例9-2中演示2的结构体变量a、b输入各成员值,交换a和b的数据后输出。

例9-2演示2的源程序

#include<stdio.h>
int main()
{struct job_exam{unsigned num;char name[10];int exama;int examb;int total;}a, b, s[3], * p; //定义的结构体变量要写在";"前return 0;
}

//根据题目要求修改后的源程序

#include<stdio.h>
int main()
{struct job_exam{unsigned num;char name[10];int exama;int examb;int total;}a = { 1501,"王虎",89,92,181 }, b = { 1502,"李雪",87,96,183 }, r;r = a;a = b;b = r;printf("编号   姓名   笔试   面试   总成绩\n");printf("%4u %6s %5d %6d %7d\n", a.num, a.name, a.exama, a.examb, a.total);printf("%4u %6s %5d %6d %7d\n", b.num, b.name, b.exama, b.examb, b.total);return 0;
}

【例9-3】结构体变量的引用相关推荐

  1. C++结构体变量的引用 | 结构体变量引用

    C++结构体变量的初始化 C++对结构体变量可以在定义时指定初始值. struct Student{ //自定义结构体变量 int num;//学号 char sex;//性别 int age;//年 ...

  2. c语言 结构成员 变量引用,C++结构体变量的引用

    在定义了结构体变量以后,当然可以引用这个变量,常用的方法有以下几种. 1) 可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量. 如上面的student1和student2都是student类 ...

  3. C++结构体变量的引用

    定义结构体变量以后,下一步可以引用了. 好比记到脑子里的知识,可以开始输出了,输出倒逼输入- 老大说了,不能把结构体变量整体输入或输出,只能对每个具体成员进行输入/输出操作. struct wolf ...

  4. c语言结构体作为形参是否加struct_(struct)结构体变量作为函数参数调用的方法小结...

    结构体变量作为函数参数传递的3种方法将一个结构体变量中的数据传递给另一个函数,有下列3种方法:用结构体变量名作参数.一般较少用这种方法.用指向结构体变量 结构体变量.结构指针变量.结构数组作为函数的参 ...

  5. C语言结构体变量和结构体数组-学习笔记(十六)

    一.结构体变量 1.结构体概念 将不同类型的数据组合成一个有机的整体即为结构体.结构体由许多组织在一起的数据项组成,这些数据项不需要属于同一类型. 2.结构体类型及结构体变量定义 (1)结构体类型声明 ...

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

    7.2 结构体数组的定义和引用 当需要使用大量的结构体变量时,可使用结构体定义数组,该数组包含与结构体相同的数据结构所组成的连续存储空间.如下例所示: struct student stu_a[50] ...

  7. 【C语言】结构体类型和结构体变量(字节对齐)

    目录 一.结构体类型定义 二.结构体变量的定义 ①先定义结构体类型,再定义结构体变量 ②在定义结构体类型的同时,定义结构体变量 ③直接定义结构体变量 三.结构体变量的内存分配 四.结构体变量的初始化 ...

  8. 结构体变量以及结构体数组

    1.概述 C 语言允许用户自己指定这样一种数据结构,它由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体,它相当于其它高级语言中记录. 声明一个 ...

  9. c语言中结构体变量的作用,C语言 结构体 类型变量的 定义 和 引用

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

最新文章

  1. c++ 外部组件发生异常_谁再悄咪咪的吃掉异常,我上去就是一 JIO
  2. 【通知】有三AI运营组成员招收条件及管理暂行方案,你是否想好与有三AI共进退...
  3. 娓娓道来Promise
  4. cephfs java api_Kubernetes使用cephfs作为后端存储
  5. leetcode518. 零钱兑换 II
  6. php stmp 授权码问题,PHPmailer 使用网易126发送邮件的问题
  7. Objective-C 2.0 with Cocoa Foundation --- 2,从Hello,World!开始
  8. Linux运维问题解决(3)——VMware启动虚拟机报错 : 该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取(T)
  9. WCF服务可靠性传输配置与编程开发(转)
  10. 如何快速删除代码中的空行?eclipse删除空行超实用
  11. 图的BFS和DFS原理及实例分析(java)
  12. 用Python制作小游戏之‘植物大战僵尸’(二)完整代码
  13. github代理-github
  14. 联想台式机进入修复计算机,联想台式机一键恢复的使用方法
  15. uchome登陆机制分析(三)
  16. WPF应用无法使用Snoop分析的解决办法
  17. html微信公众平台登录界面,微信公众平台登录界面在哪里
  18. Leslie cheung's Speech
  19. Google Earth Engine——可视化的美国加州圣华金河流域的100年气候预测模型
  20. 大数据之Stream流

热门文章

  1. 别耍小聪明—leo看赢在中国第三季(1)
  2. pillow压缩图片
  3. DPLL 算法(求解k-SAT问题)详解(C++实现)
  4. 企业办公模式转型,OA系统进入常态化
  5. github commit 时丰富多彩的图标到底是怎么弄的?这样!
  6. altera 设计--仿真--下载
  7. learnpythonthehardway.org_Python学习笔记LearnPythonHardWay
  8. 区块链是什么 通俗点
  9. 在公司里如何写好一封电子邮件
  10. Scrapy爬取动态页面下载图片(以抓取360图片为例)