C语言中,箭头符号 “->” 和点号符号 “.”的区别

这篇具有很好参考价值的文章主要介绍了C语言中,箭头符号 “->” 和点号符号 “.”的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在C语言中,箭头符号 “->” 用于访问结构体(struct)或联合体(union)类型的成员。它可以替代点号(.)来访问结构体或联合体的成员,当通过指针访问时使用箭头符号。例如,假设有一个结构体类型的指针变量p,其中包含成员变量x,可以使用箭头符号来访问x,例如 p->x。这是因为p是一个指针,而不是结构体本身。



箭头符号 “->” 和点号符号 “.” 在C语言中都用于访问结构体或联合体类型的成员,但它们之间有一些重要的区别。

  1. 语法:

    • 点号 “.” 主要用于直接访问结构体或联合体变量的成员。例如,如果有一个结构体变量s,其中包含成员变量x,可以使用 s.x 访问 x。
    • 箭头符号 “->” 主要用于通过指针访问结构体或联合体的成员。例如,如果有一个指向结构体的指针变量p,其中包含成员变量x,可以使用 p->x 访问 x。
  2. 对象类型:

    • 点号 “.” 用于直接访问结构体或联合体变量的成员。
    • 箭头符号 “->” 用于通过指针访问指向结构体或联合体的成员。
  3. 使用场景:

    • 点号 “.” 主要用于直接操作结构体或联合体变量。
    • 箭头符号 “->” 主要用于通过指针操作结构体或联合体。

总之,点号和箭头符号在访问结构体或联合体成员时使用的语法和对象类型有所不同,取决于你是直接操作变量还是通过指针访问。



以下是两个例子来对比点号 “.” 和箭头符号 “->” 的不同之处

例子1:使用点号 “.”

#include <stdio.h>

struct Person {
   char name[20];
   int age;
};

int main() {
   struct Person p1;

   strcpy(p1.name, "John");
   p1.age = 25;

   printf("Name: %s\n", p1.name);
   printf("Age: %d\n", p1.age);

   return 0;
}

输出:

Name: John
Age: 25

在这个例子中,我们声明了一个结构体类型 Person,并使用点号 “.” 直接访问结构体变量 p1 的成员。通过赋值和打印语句,我们直接操作 p1 的成员变量 name 和 age。

例子2:使用箭头符号 “->”

#include <stdio.h>
#include <stdlib.h>

struct Person {
   char name[20];
   int age;
};

int main() {
   struct Person *p2;

   p2 = (struct Person*) malloc(sizeof(struct Person));

   strcpy(p2->name, "Emily");
   p2->age = 32;

   printf("Name: %s\n", p2->name);
   printf("Age: %d\n", p2->age);

   free(p2);

   return 0;
}

输出:

Name: Emily
Age: 32

在这个例子中,我们声明了一个指向结构体的指针变量 p2,并使用箭头符号 “->” 通过指针访问结构体的成员。通过动态内存分配(malloc)来分配结构体内存,并操作 p2 指向的结构体的成员变量 name 和 age。

通过这两个例子,你可以看到点号 “.” 和箭头符号 “->” 在语法和使用方式上的不同。点号用于直接操作结构体变量的成员,而箭头符号用于通过指针访问结构体的成员。文章来源地址https://www.toymoban.com/news/detail-722270.html

到了这里,关于C语言中,箭头符号 “->” 和点号符号 “.”的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机和Linux嵌入式区别

    单片机是一种集成电路,它能够在一个芯片上完成各种计算、控制和管理任务。单片机没有明确的分层,这是因为它通常被用来设计嵌入式系统,其程序结构和功能要根据具体的应用需求来设计。 在单片机的程序设计中,可以通过一些方法将程序分为不同的层次,比如可以将

    2024年01月17日
    浏览(60)
  • STM32和51单片机有什么区别

    在项目开发过程中,我们经常会遇到单片机选型的需要,所以我们往往会根据项目的功能需求选择合适的品牌和型号。常见的51单片机和STM32单片机也将是我们主要考虑的机型。 STM32和51单片机参数区别 核心不一样。STM32系列有很多内核版本,包括cortex-m1/M4/M7内核。常用的单片

    2024年02月03日
    浏览(51)
  • 51单片机——计数器与定时器的区别

    定时器和计数器 是同一器件—--计数器,其共同的特点是都有一个计数脉冲输入端,每输入一个脉冲,计数器就进行加1或减1计数。 若计数器件的计数脉冲的频率固定,则可利用计数实现定时,这就是定时器。 若计数器件的作用仅仅是记录输入脉冲的多少,则称为计数器。 ①产生的

    2024年01月16日
    浏览(53)
  • FPGA的工作原理、组成结构、优点以及和单片机的区别

    注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料 ,将在公众号 CTO Plus 发布,请关注公众号: CTO Plus FPGA的工作原理、组成结构、优点以及和单片机的区别 FPGA (Field Programmable Gate Array,现场可编程门阵列) 是一种高度灵活的 https://mp.weixin.qq.co

    2024年02月03日
    浏览(52)
  • 51单片机P0/P1/P2/P3端口的区别

    传统的以MCS-51为基础的8051内核单片机通常有4个双向8位I/O接口,它们是P0、P1、P2、P3。在无外接存储器时,这4个I/O接口均可以作为通用I/O接口使用,CPU既可以对它们进行字节操作也可以进行位操作。 1.P0口 一个双向IO口,可作为低8位地址总线,亦可作8位双向数据总线,分时复

    2024年02月05日
    浏览(44)
  • 单片机课设———基于51单片机的智能风扇控制器(汇编语言)

    说明:单片机芯片为AT89C52,使用普中开发板,用汇编语言编程。 系统实现了对风扇的控制: (1)控制器面板包括:启/停键、模式选择键、风速键和类型选择键。 (2)模式分为:手动模式和自动温控模式。在温控模式下,风速键和类型选择键无效。 (3)风速分为:强、中

    2024年02月11日
    浏览(51)
  • 嵌入式单片机 TTL电平、232电平、485电平的区别和联系

    TTL、232和485是常见的串口通信标准,它们在电平和通信方式上有所不同, ①一般情况下TTL电平应用于单片机外设,属于MCU/CPU等片外外设; ②232/485电平应用于产品整体对外的接口,一般是片外TTL串口转232/485,232/485进行数据通信传输; 1、TTL电平 (1)TTL(Transistor-Transistor Log

    2024年04月15日
    浏览(47)
  • 51单片机汇编语言指令大全

    参考链接 https://blog.csdn.net/weixin_45702442/article/details/115874162 https://blog.csdn.net/acslsr/article/details/106881712 在这里稍作终结,方便复习 51系列单片机按照功能分科分为5大类 数据传送类指令28条; 算数操作类指令24条; 逻辑运算类指令25条; 控制转移类17条; 位操作类17条。 MOV A,R

    2024年02月07日
    浏览(41)
  • 51单片机电子时钟(C语言)

     全部硬件电路分为四大部分: 控制模块51单片机; 显示模块LCD1602,由P0口控制; 计时模块DS1302,由P1口控制; 输入按键,由P3口控制。         实际设计硬件电路时应考虑到51单片机的电源、复位电路以及外接晶振,时钟芯片DS1302的备用电源等。 从1302的寄存器中读取数据

    2024年02月07日
    浏览(43)
  • 单片机C语言实例:14、音频输出

    一、喇叭发声原理 程序实例1: 二、警车声音 程序实例2: 三、救护车声音 程序实例3: 四、喇叭滴答声 程序实例4: 五、报警声音 程序实例5: 六、消防车警报 程序实例6: 七、音乐播放 程序实例7:

    2024年01月20日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包