当前位置: 首页 > news >正文

大话C语言:第40篇 结构体指针​

结构体指针是C语言中一种特殊的指针类型,它指向一个结构体变量。结构体指针可以用来访问结构体的成员,同时也可以作为函数参数进行传递,以便在函数内部操作结构体的数据。

结构体指针的定义方式与定义其他类型的指针类似,只是指针的数据类型是结构体类型。结构体指针的定义与使用需要经过以下步骤:

  • 定义结构体指针,语法格式:

// 结构体声明
struct 标签或者结构体名 
{  数据类型 成员1;数据类型 成员2;...数据类型 成员n;    
}; // 结构体指针声明
struct 标签或者结构体名 *结构体指针变量;
  • 初始化结构体指针,语法格式:

// 定义结构体变量
struct 标签或者结构体名 结构体变量 = {/*初始化结构体成员列表*/};// 结构体指针指向结构体变量
结构体指针变量 = &结构体变量;
  • 结构体指针访问或者修改结构体成员,语法格式:

// 通过结构体指针访问或者修改结构成员有以下两种方式
// 方式1: ->
结构体指针变量->结构体成员;// 方式2: (*).
// 这种方式等同于结构体变量.结构体成员
(*结构体指针变量).结构体成员;

代码示例:

#include <stdio.h>int main()
{struct Student {  char name[20];  int age;  float score;  };  // 定义一个指向Student结构体的指针ptr,默认值为空指针NULLstruct Student *ptr = NULL; // 定义结构体变量struct Student stu = {"Tom", 22, 98.5f};// ptr指向stu的地址struct Student *ptr = &stu; // 通过->访问结构体成员printf("姓名:%s, 年龄:%d, 分数:%.1f\n", ptr->name, ptr->age, ptr->score);// 通过(*).访问结构体成员printf("姓名:%s, 年龄:%d, 分数:%.1f\n", (*ptr).name, (*ptr).age, (*ptr).score);return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【学习笔记】A2X通信的协议(十一)- 通过PC5的直接C2通信
  • 车辆横向控制的参考路径估计
  • 网络安全入门必备读书清单!(非常详细)零基础入门到精通,收藏这一篇就够了
  • 物理网卡MAC修改器v3.0-直接修改网卡内部硬件MAC地址,重装系统不变!
  • 单元训练10:定时器实现秒表功能-数组方式
  • 打卡学习Python爬虫第一天|抓取百度首页html代码
  • 若依框架中的mybatis依赖在哪里?
  • Vue2 和 Vue3中EventBus使用差异
  • EasyRecovery17中文版永久汉化版电脑数据恢复工具下载
  • 使用Labelme标注数据
  • C++面向对象单例模式禁止拷贝、禁止赋值操作(=delete)
  • Qt 通过QSS设置两个QWidget的叠加
  • HarmonyOS Next 系列之列表下拉刷新和触底加载更多数据实现(十一)
  • 会员注册表单包括先写基础信息,地址选择,上传文件,填写身份证号等功能JavaScript+HTML
  • LeetCode125. 验证回文串
  • 【译】理解JavaScript:new 关键字
  • eclipse的离线汉化
  • github从入门到放弃(1)
  • github指令
  • Java比较器对数组,集合排序
  • JS数组方法汇总
  • nginx 配置多 域名 + 多 https
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Spring Boot快速入门(一):Hello Spring Boot
  • SwizzleMethod 黑魔法
  • use Google search engine
  • vuex 学习笔记 01
  • vue的全局变量和全局拦截请求器
  • Zsh 开发指南(第十四篇 文件读写)
  • 第十八天-企业应用架构模式-基本模式
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 力扣(LeetCode)357
  • 前嗅ForeSpider中数据浏览界面介绍
  • 设计模式 开闭原则
  • 微信开源mars源码分析1—上层samples分析
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 携程小程序初体验
  • 移动端解决方案学习记录
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​ubuntu下安装kvm虚拟机
  • #数据结构 笔记一
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (02)vite环境变量配置
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (SpringBoot)第二章:Spring创建和使用
  • (TOJ2804)Even? Odd?
  • (二十四)Flask之flask-session组件
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐