C语言小题,通过指向结构体变量的指针变量输出结构体变量中成员的信息。(指针结构体变量的指针)

news2024/12/23 15:58:30

前言:
此篇是针对 指针结构体变量的指针 方面的练习。

解题思路:
在已有的基础上,本题要解决两个问题:
(1)怎样对结构体变量成员赋值;
(2)怎样通过指向结构体变量的指针访问结构体变量中成员。

正文:

#include<stdio.h>
#include<string.h>
int main() {
	struct Student {
		long num;
		char name[20];
		char sex;
		float score;
	};
	struct Student stu_1;				//定义struct Student 类型的变量 stu_1
	struct Student *p;					//定义指向struct Student 类型数据的指针变量p
	p=&stu_1;							//p指向stu_1
	stu_1.num=10101;					//对结构体变量的成员赋值
	strcpy(stu_1.name,"Li Lin");		//用字符串复制函数给stu_1.name赋值
	stu_1.sex='M';
	stu_1.score=89.5;
	printf("No.:%ld\nname:%s\nsex:%c\nscore:%5.1f\n",
	       stu_1.num,stu_1.name,stu_1.sex,stu_1.score);		//输出结果
	printf("\nNo.:%ld\nname:%s\nsex:%c\nscore:%5.1f\n",
	       (*p).num,(*p).name,(*p).sex,(*p).score);
	return 0;
}

程序分析:
在主函数中声明了 struct Student 类型,然后定义一个 struct Student 类型的变量 stu_1。又定义一个指针变量 p,它指向一个 struct Student 类型的对象。将结构体变量 stu_1 的起始地址赋给指针变量 p,也就是使 p 指向 stu_1 ( 见图9.5 ),然后对 stu_1 的各成员赋值。
在这里插入图片描述

第1个 printf 函数是通过结构体变量名 stu_1 访问它的成员,输出 stu_1 的各个成员的值。用 stu_1.num 表示 stu_1 中的成员 num,依次类推。第2个 printf 函数是通过指向结构体变量的指针变量访问它的成员,输出 stu_1 各成员的值,使用的是( * p).num 这样的形式。( * p)表示 p 指向的结构体变量,( * p).num 是 p 指向的结构体变量中的成员 num。注意 * p 两侧的括号不可省,因为成员运算符 “.” 优先于 “ * ” 运算符,* p.num 就等价于 * (p.num)了。

说明:
为了使用方便和直观,C语言允许把( * p).num 用 p->num 来代替,“->”
代表一个箭头,p->num 表示 p 所指向的结构体变量中的 num 成员。同样,( * p).name 等价于 p->name。“->” 称为指向运算符。

如果 p 指向一个结构体变量 stu ,以下3种用法等价:
①stu.成员名(如 stu.num);
②( * p),成员名(如( * p).num);
③p-> 成员名(如 p->num)。

总结:
运行结果:
在这里插入图片描述

两个 printf 函数输出的结果是相同的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

天云数据:Hubble数据库系统自主研发率99.62%,是真正的信创数据库

软件是新一代信息技术的灵魂&#xff0c;是数字经济发展的基础&#xff0c;是制造强国、网络强国、数字中国建设的关键支撑。2021年&#xff0c;工信部印发的《“十四五”软件和信息技术服务业发展规划》明确指出&#xff0c;要聚力攻坚基础软件&#xff0c;关键基础软件补短板…

Javascript基础复盘5

内置对象 值属性 这些全局属性返回一个简单值&#xff0c;这些值没有自己的属性和方法。 InfinityNaNundefinedglobalThis函数属性 全局函数可以直接调用&#xff0c;不需要在调用时指定所属对象&#xff0c;执行结束后会将结果直接返回给调用者。 eval()uneval()isFinite()isN…

Q-Learning以及.NET环境下的实现

Q-Learning以及.NET环境下的实现写在前面机器学习Q-Learning环境准备试题准备解题过程写在结尾写在前面 看过我的文章的朋友应该都知道&#xff0c;我之前一直在研究视觉相关的知识&#xff0c;也看了一些卷积神经网络&#xff08;CNN&#xff09;&#xff0c;深度学习相关的文…

强化学习之:价值学习Value-Based Learning

文章目录参考内容动作价值函数&#xff08;Action-value Function&#xff09;深度强化学习&#xff08;DQN&#xff09;学习目标&#xff08;Goal&#xff09;如何获得尽可能好的 Q∗(st,a)→Q^{*}(s_t, a) \rightarrowQ∗(st​,a)→ 用神经网络通过学习获得时间差分算法&…

cocos creater 3.x 开发笔记(踩坑总结)

1、cocos creater 3.x 花屏闪屏黑屏 1.1 花屏 排序是一个很简单的功能&#xff0c;但是最终的呈现却是根据不同平台提供的渲染能力来的。因此&#xff0c;在这里说明一下&#xff0c;如果遇到了 UI 渲染出错&#xff0c;花屏&#xff0c;闪屏等现象&#xff0c;首先要检查的就…

【安装合集】Mysql8.0安装 2023年1月31日 22点15分

1.鼠标右击【Mysql8.0】压缩包选择【解压到Mysql8.0】。 2. 鼠标右击【mysql-installer-community-8.0.17.0】选择【安装】 3. 勾选【I accept the license terms】然后点击【Next】。 4. 选择【Custom】然后点击【Next】。 5. 双击【MySQL Servers】 双击【MySQL Server】&am…

数据指标体系的建设思考(四)

这一篇主要介绍对数据指标体系的价值、数据指标管理平台的理解及数据分析的趋势解读。 一、数据指标体系价值 关于数据指标体系的价值&#xff0c;我想大多数从事数据工作的人员都可以感受得到&#xff0c;毕竟数据指标的输出可以通过可视化的方式&#xff08;如大屏、驾驶舱…

Linux 中去除 vi/vim 和 git diff 中的 ^M 问题解决办法

去除 vi/vim 和 git diff 中的 ^M 问题解决办法问题现象初步分析进一步查看问题解决Source Insightdos2unixNodpadVimsed 命令综上Reference问题现象 git diff 时发现下面的情况&#xff0c;新修改的代码之处都是携带 ^M 字符&#xff0c; 初步分析 肯定是因为 Windows 和 …

推荐5款常用的有限元分析CAE软件

正如我们之前谈到的&#xff0c;计算机辅助软件有助于进行有限元分析。但是我们如何识别好的 CAE 软件呢&#xff1f;CAE 软件必须满足以下要求才能被纳入其类别使用户能够通过图形用户界面 (GUI) 创建模拟允许在模拟中测试组件&#xff0c;同时具有可自定义的环境变量协助优化…

JAVA队列-接口

前言 说到队列,大家都不陌生,很多场景都需要使用到队列,今天我们一起学习JDK提供的队列源码 类图 Queue接口的实现类有很多 从中,我们看到几个熟悉的,BlockingQueue 阻塞队列、Deque 双端队列 Queue 官方介绍: A collection designed for holding elements prior to proce…

MORPHVOX PRO 变声器 软件 Crack

MORPHVOX PRO 变声器 变音的全新层次 在网上聊天和游戏中使你变音 它具有超高语音学习技术&#xff0c;背景取消和高音质特点&#xff0c;将变音带向全新层次。 上好的变音质量 聆听MorphVOX Pro上好的变音质量。 *变音的音频因人而异&#xff0c;但它确实是同一个说话者发出…

国内爬虫图鉴

文章目录爬虫图鉴1.三个问题2.互联网上的爬虫2.1豪哥与爬虫2.2爬虫简介2.3APP身边的爬虫2.4爬虫排名1、排名第一的是出行2、排名第二的是社交。3、排名第三的是电商。4、接下来是 O2O 和搜索引擎。5、最后再说说政府部门。3.关于爬虫的几点疑问4.爬虫的TopN爬虫图鉴 本文案例来…

【数学建模】层次分析法(AHP)-Python实现

1 前言 本文主要讲解层次分析法&#xff08;AHP&#xff09;的python实现&#xff0c;后续会跟进实例分析 2 代码实现 导入包 import numpy as np2.1 构造判断矩阵 判断矩阵一般采用专家意见法&#xff0c;也就是德尔菲法。但是比赛的时候也没有什么专家&#xff0c;大家自…

2019-arXiv-Edge Contraction Pooling for Graph Neural

2019-arXiv-Edge Contraction Pooling for Graph Neural Paper: https://arxiv.org/abs/1905.10990 Code: https://github.com/pyg-team/pytorch_geometric/tree/master/benchmark/kernel 图神经网络的边缘收缩池化 池化层可以使GNN对抽象的节点组而不是单个节点进行推理。为…

【基础篇】5 # 链表(下):写好链表代码的六个实用技巧

说明 【数据结构与算法之美】专栏学习笔记 技巧一&#xff1a;理解指针或引用的含义 指针或引用都是存储所指对象的内存地址。将某个变量赋值给指针&#xff0c;实际上就是将这个变量的地址赋值给指针。 例如&#xff1a; p —> next q&#xff1a;表示 p 结点中的 ne…

opencv——Canny边缘检测

1、Canny边缘检测流程a、使用高斯滤波器&#xff0c;以平滑图像&#xff0c;滤除噪声。b、计算图像中每个像素点的梯度强度和方向。c、应用非极大值抑制&#xff0c;以消除边缘检测带来的杂散效应。d、应用双阈值检测来确定真实的和潜在的边缘。e、通过抑制孤立的弱边缘最终完成…

webpack4和webapck5的及新特性

30.webpack——webpack5新特性&#xff08;启动、持久化缓存、资源模块、URIs、moduleIds和chunkIds、tree shaking、nodeJs的polyfill被移除、模块联邦&#xff09;_俞华的博客-CSDN博客_chunkids 1、新特性1——启动命令 webpack4启动devServer&#xff0c;用的命令是webpac…

clickhouse库通过字段分组后获取排序后每天的前N条数据

各种查资料&#xff0c;都没找到&#xff0c;建议还是多看文档 方法1 &#xff1a;简单便捷&#xff1a; order by date,count desc limit 5 by date (取每天前5条数据&#xff0c;5可以随便换) sql可以随便写&#xff1a; 统计每天学生人数&#xff0c;按降序排序&#xff…

高级Spring之jdk 和 cglib 在 Spring 中的统一

Spring 中对切点、通知、切面的抽象如下 切点&#xff1a;接口 Pointcut&#xff0c;典型实现 AspectJExpressionPointcut 通知&#xff1a;典型接口为 MethodInterceptor 代表环绕通知 切面&#xff1a;Advisor&#xff0c;包含一个 Advice 通知&#xff0c;PointcutAdvisor…