自从了解结构体这个类型后,相信有不少人和我一样对于 "." 和 "->"何时使用哪个来引用目标结构体中元素感到混淆,今天还是把他写下来,以后再忘了自己也可以来看看。

首先我们声明一个结构体。

typedef struct{int num[100];
}ParkSystem;

接下来在main函数中直接创建结构体变量,

ParkSystem* P = (ParkSystem*)malloc(sizeof(ParkSystem));
ParkSystem Pa;
Pa.num[50] = 51;

P是一个指向结构体对象的指针,Pa是直接创建的一个结构体对象,并对其中num数组元素的第50号位初始化数值,再对地址P指向的结构体对象中num数组元素初始化,每个位置的数值为数组该位置角标大小。现在同时输出P和Pa中num[50]的数值看看。

printf("%d   ,  %d\n",P->num[50],Pa.num[50]);

我们来总结 ''." 和 "->" 的应用场景。对于指向结构体的指针P,我们想要访问它指向的结构体中元素时,需要使用P->num[i]的形式;而对于结构体对象Pa,想要访问它里面的元素时,使用Pa.num[i]的表达式。

简而言之,''." 是普通变量操作,"->" 是指针操作。

结构体中元素引用—— “.“ 与 “->“相关推荐

  1. 结构体中元素的偏移地址与首地址

    结构体中元素的偏移地址与首地址 1.offsetof() 0指针的使用 2.container_of() 1.offsetof() #define offsetof(TYPE, MEMBER) ((s ...

  2. 【DaVinci Developer专题】-24-IDT高阶应用:结构体中元素(数组,结构体,联合体)类型相互嵌套

    共15页 目录 1 创建一个Value IDT 2 创建一个Array IDT 3 创建一个Record IDT 4 创建一个Union IDT 5 创建一个Record IDT <

  3. C语言 泛型链表 如何计算(结构体中各元素)相对内存地址?(字节对齐,结构体对齐)offsetof()函数 ( (struct X*)0 ) -> Y)语法(匿名结构体)

    示例: typedef struct _user {char name[20];char sex[20];int age;struct list_head mylist;//自定义结构体里保存双向循环 ...

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

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

  5. C语言如何获取结构体中指定元素的大小?sizeof ( (X*)0 ) -> Y)(空指针操作)

    获取结构体的大小,这好办,这样就可以了: #include <stdio.h>struct user {char name[20];char age[10]; };int main() { ...

  6. 结构体中引用另一结构体

    结构体中引用另一结构体 1.自引用结构体 1.1不使用typedef时 2.1使用typedef时 2.互引用结构体 结构体引用主要分为自引用和互引用.我主要以实例展示如何使用,不会过多赘述太多,想必 ...

  7. 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

    结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势:(1).不需要初始化,数组名直接就是所在的偏移:(2).不占任何空间,指针需要占 ...

  8. C/C++ 学习笔记:结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

    结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势:(1).不需要初始化,数组名直接就是所在的偏移:(2).不占任何空间,指针需要占 ...

  9. 【C语言】宏offsetof的模拟实现 (计算结构体中某变量相对于首地址的偏移)

    首先我们应该特别留意 : offsetof 是一个宏,并非是一个函数 ! 宏offsetof的介绍 : 参数:第一个是结构体类型名称,第二个是结构体成员名 返回类型:size_t无符号整形 引用的头文 ...

最新文章

  1. html网页在指定位置嵌入表格,网页制作中表格的主要作用 网页制作中插入表格怎么调整位置...
  2. Redis,传统数据库,HBase,Hive区别联系
  3. SignalR系列教程:SignalR快速入门
  4. WCF生成客户端对象方式解析
  5. python UDP-数据报协议
  6. WINCC访问OPC服务器显示叹号,本机浏览opcserver.wincc ,无法打开-工业支持中心-西门子中国...
  7. 如果连这10个Python缩写都不知道,那你一定是Python新手
  8. 机器学习:空间变换进行非线性分类
  9. html连接数据库id号自动生成器,SQL Server数据库sql语句生成器(SqlDataToScript)的使用(sql server自增列(id)插入固定值)...
  10. 苹果沦为语音识别领域失败者?
  11. commit rollback操作产生undo和redo?
  12. Linux基础命令之cd返回上级目录/返回根目录/进目录/返回上一次目录/返回指定目录
  13. QT 输入框禁止window10触摸屏弹出键盘
  14. bilibili视频下载器v1.0.5 支持4K超清
  15. VXE-TABLE V4 表格表尾合并
  16. 智能工厂设备无人值守系统方案
  17. 【调剂】2023上海大学-国家重点实验室-院士团队,接收材料-物理-冶金-计算机-数学调剂研究生...
  18. 现代物流不可或缺的EDI系统
  19. 超级计算机重量大,银河系有多重?大约960000000000个太阳
  20. 35岁+的大龄程序员:面对“中年危机”,这份书单或许能帮到你

热门文章

  1. 软件包下载地址(一)
  2. 数据中台建设的价值及数据中台架构
  3. 目标检测——RCNN与YOLO系列
  4. 天干地支 java_Java实现干支纪年法
  5. (C++学习笔记一)命名空间 常量 字符串
  6. 4.pycharm(免费专业版)下载与安装与环境配置
  7. 基于逻辑回归的鸢尾花分类
  8. windows7隐藏桌面计算机,win7小技巧之隐藏桌面图标
  9. 中学-综合素质【8】
  10. 推荐一个小巧强大的代码编辑器