首页 > 其他分享 >C语言中.与->的用法介绍

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

时间:2023-07-29 21:03:25浏览次数:44  
标签:指向 int 介绍 用法 运算符 stu phead 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。"."一般情况下读作"的”; “->”一般读作"指向的结构体的"。也就是说在结构中,运算符->是运算符和运算符.的结合
  • “->”是指向结构体成员运算符。“.”是断点符号,不属于运算符。
  • “->”所指向的是结构体或对象的首地址。“.”所指向的是结构体或对象。
  • “->”的用处是使用一个指向以便访问结构体或对象其内成员。“.”的用处是使用一个指向以便访问结构体或对象。

标签:指向,int,介绍,用法,运算符,stu,phead,C语言,结构
From: https://blog.51cto.com/u_15641375/6895146

相关文章

  • C语言字符串的常用操作
    C语言是一种非常流行的编程语言,它支持各种数据类型,包括整数、浮点数、字符和字符串等。在C语言中,字符串是一种特殊的数据类型,它由一系列字符组成,以\0字符结尾。本文将介绍C语言中字符串的相关知识,包括字符串的定义、初始化、赋值、输入输出、比较、拼接、查找和替换等。一、字符......
  • 1.6 PC、手机图形API介绍
    电脑的工作原理:电脑是由各种不同的硬件组成,由驱动软件驱使硬件进行工作。所有的软件工程师都会直接或者间接的使用到驱动。定义:是一个图形库,用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。针对GPU。基础概念 应用端:即我们自己的程序段,相对于opengles,我们属......
  • 【C语言趣味教程】(4) 变量:代码注释 | 变量的声明 | 初始化与赋值 | 变量的命名 | 关
    Ⅰ.代码注释(Comment)0x00引入:注释的作用"程序员最讨厌两种人:一种是不写注释的人,一种是让我写注释的人。"相信大家对注释早已有所耳闻,对于注释,C语言有两种注释风格,我们下面会逐个讲解。 但在这之前,我们先来了解了解注释的作用,注释就是用于解释代码的文字的。注释通常用于版本、版......
  • 【webpack系列】从基础配置到掌握进阶用法
    前言本篇文章将介绍一些webpack的进阶用法,演示内容继承自上一篇文章的内容,所以没看过上一篇文章的建议先学习上一篇内容再阅读此篇内容,会更有利于此篇的学习~文件指纹文件指纹指的是打包输出的文件名后缀,一般用来做版本管理、缓存等webpack的指纹策略有三种:hash、chunkhash、content......
  • c语言作业之登录账号
    intmain(){ inti=0; charpassword[20]={0}; for(i=0;i<3;i++) { printf("请输入密码:>"); scanf("%s",password); //if(password=="123456");//err,==不能用来比较两个字符串是否相等,应该使用一个库函数strcmp if(strcmp(password,......
  • Unity UGUI的Outline(描边)组件的介绍及使用
    UnityUGUI的Outline(描边)组件的介绍及使用1.什么是Outline(描边)组件?Outline(描边)组件是UnityUGUI中的一种特效组件,用于给UI元素添加描边效果。通过设置描边的颜色、宽度和模糊程度,可以使UI元素在视觉上更加突出。2.Outline(描边)组件的工作原理Outline(描边)组件通过在U......
  • Unity UGUI的Outline(描边)组件的介绍及使用
    UnityUGUI的Outline(描边)组件的介绍及使用1.什么是Outline(描边)组件?Outline(描边)组件是UnityUGUI中的一种特效组件,用于给UI元素添加描边效果。通过设置描边的颜色、宽度和模糊程度,可以使UI元素在视觉上更加突出。2.Outline(描边)组件的工作原理Outline(描边)组件通过在......
  • c语言学习第一课
    VS工具提前输入#define_CRT_SECURE_NO_WARNINGS1数据类型char //字符数据类型short//短整型int  //整型long //长整型longlong //更长整型float //单精度浮点数double //双精度浮点数 printf(“%lf\n",d);   lf表示双精度浮点数类型用来向内存申请空间创......
  • VsCode如何配置C语言环境?
    以前学校上C语言课程都是使用VC++6.0上课,这个学期为了复习一遍C语言,而且自己经常使用VSCode开发前端项目,所以为了方便。这里把需要的环境和插件配置在这里介绍一下。Windows环境下安装C语言编译器MinGW-W64GCCC的下载地址为:https://sourceforge.net/projects/mingw-w64/下载......
  • MYSQL的安全模式:sql_safe_updates介绍
    查看当前mysqlsession会话下的sql_safe_updatesselect@@sql_safe_updates;查看全局的配置参数sql_safe_updatesselect@@global.sql_safe_updates set[global]sql_safe_updates=1; 在update操作中:当where条件中列(column)没有索引可用且无limit限制时会拒绝更新。whe......