写点什么

C 语言中. 与 ->的用法介绍

作者:向阳逐梦
  • 2023-06-25
    四川
  • 本文字数:688 字

    阅读完需:约 2 分钟

C语言中.与->的用法介绍

(一)基础

结构体,结构体指针箭头

a->b 的含义是 (*a).b 。  现代的标准化的 C 语义上来说, -> 可以用 * 和 . 的组合实现。

简单的说,就是一个快捷方式,一个语法糖。

(二)例子

在机器码和汇编的角度来看,不存在变量,不存在 struct 这种东西,只存在寄存器和一个叫做内存的大数组。

结构体变量用 . 来访问结构体的成员如下:

#include<stdio.h>#include <malloc.h>struct stu{    int  age;    stu* next;};int main(){    stu s1;    <strong>s1.age </strong><strong>=18;    </strong>return 0;}
复制代码

指向结构体的指针->来访问其指向的结构体的成员如:

#include<stdio.h>#include <malloc.h>struct stu{    int  age;    stu* next;};int main(){    <strong>stu </strong><strong>*</strong>phead = (stu*)malloc(sizeof(stu));//测试代码     <strong>phead->age=18</strong><strong>;</strong>    phead->next = NULL;    stu* p = phead;    return 0;}
复制代码

(三)总结

  • A->a 表示 A 是指向结构体的指针

  • A.a 表示 A 是结构体

  • A->a 等效于(*A).a

  • A.B 则 A 为对象或者结构体;

  • A->B 则 A 为指针,->是成员提取,A->B 是提取 A 中的成员 B,A 只能是指向类、结构、联合的指针;

  • (*a).b 等价于 a->b。"."一般情况下读作"的”; “->”一般读作"指向的结构体的"。也就是说在结构中,运算符->是运算符*和运算符.的结合

  • “->”是指向结构体成员运算符。“.”是断点符号,不属于运算符。

  • “->”所指向的是结构体或对象的首地址。“.”所指向的是结构体或对象。

  • “->”的用处是使用一个指向以便访问结构体或对象其内成员。“.”的用处是使用一个指向以便访问结构体或对象。


发布于: 刚刚阅读数: 5
用户头像

向阳逐梦

关注

人生享受编程,编程造就人生! 2022-06-01 加入

某公司芯片测试工程师,嵌入式开发工程师,InfoQ签约作者,阿里云星级博主,华为云·云享专家。座右铭:向着太阳,追逐梦想!

评论

发布
暂无评论
C语言中.与->的用法介绍_向阳逐梦_InfoQ写作社区