服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言中.与->的用法介绍

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

2023-05-11 16:25ImreW C/C++

结构体用点,结构体指针用箭头,简单的说,就是一个快捷方式,一个语法糖,这篇文章主要介绍了C语言中.与->的区别及用法,需要的朋友可以参考下

(一)基础

结构体,结构体指针箭头

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

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

(二)例子

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

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

?
1
2
3
4
5
6
7
8
9
10
11
#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;
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#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。"."一般情况下读作"的”; “->”一般读作"指向的结构体的"。也就是说在结构中,运算符->是运算符*和运算符.的结合
  • “->”是指向结构体成员运算符。“.”是断点符号,不属于运算符。
  • “->”所指向的是结构体或对象的首地址。“.”所指向的是结构体或对象。
  • “->”的用处是使用一个指向以便访问结构体或对象其内成员。“.”的用处是使用一个指向以便访问结构体或对象。

到此这篇关于C语言中.与->的区别 的文章就介绍到这了,更多相关C语言中.与->的区别 内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/imreW/p/17390443.html

延伸 · 阅读

精彩推荐
  • C/C++Opencv图像处理之图像增加边框

    Opencv图像处理之图像增加边框

    这篇文章主要为大家详细介绍了Opencv图像处理之图像增加边框,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    铿锵的玫瑰8372021-07-02
  • C/C++解析sizeof, strlen, 指针以及数组作为函数参数的应用

    解析sizeof, strlen, 指针以及数组作为函数参数的应用

    本篇文章是对sizeof, strlen, 指针以及数组作为函数参数的应用进行了详细的分析介绍,需要的朋友参考下...

    C语言教程网3012020-12-10
  • C/C++基于大端法、小端法以及网络字节序的深入理解

    基于大端法、小端法以及网络字节序的深入理解

    本篇文章是对大端法、小端法以及网络字节序进行了详细的分析介绍,需要的朋友参考下...

    C语言教程网4342020-12-09
  • C/C++关于win32 gettimeofday替代方案

    关于win32 gettimeofday替代方案

    下面小编就为大家带来一篇关于win32 gettimeofday替代方案。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    jingxian6232021-04-25
  • C/C++C语言实现飞机大战

    C语言实现飞机大战

    这篇文章主要为大家详细介绍了C语言实现飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Object_in_java6042022-12-20
  • C/C++C++中的运算符重载详解

    C++中的运算符重载详解

    大家好,本篇文章主要讲的是C++中的运算符重载详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下...

    看书就头疼11762022-09-01
  • C/C++Opencv实现图像灰度线性变换

    Opencv实现图像灰度线性变换

    这篇文章主要为大家详细介绍了Opencv实现图像灰度线性变换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    东城青年5432021-07-29
  • C/C++C语言链表实现简单图书管理系统

    C语言链表实现简单图书管理系统

    这篇文章主要为大家详细介绍了C语言链表实现简单图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    正经的民谣书生11012022-10-18