C语言---指针的两个运算符:点和箭头
目录
- 点(.)运算符
- 箭头(->)运算符
- 需要注意
- 实际例子
- C语言中的指针是一种特殊的变量,它存储了一个内存地址。
- 点(.)和箭头(->)是用于访问结构体和联合体成员的运算符。
点(.)运算符
- 点(.)运算符用于访问结构体或联合体变量的成员。当我们需要直接使用结构体的成员,并且不需要在不同的函数之间传递结构体时,可以选择定义结构体变量。这样可以直接通过结构体变量名和点运算符来访问结构体的成员。
- 当我们有一个结构体或联合体变量时,可以使用点运算符来访问该变量的成员。例如:
struct Person {char name[20];int age;
};struct Person p;
p.age = 25;
箭头(->)运算符
- 箭头(->)运算符用于访问指向结构体或联合体的指针的成员。当我们需要在不同的函数之间传递结构体,或者需要动态分配内存来存储结构体时,可以选择定义指向结构体的指针。通过指针,我们可以方便地传递结构体的地址,避免了复制结构体的开销,并且可以在需要时动态分配和释放内存。
- 当我们有一个指向结构体或联合体的指针时,可以使用箭头运算符来访问该指针指向的结构体或联合体的成员。例如:
struct Person {char name[20];int age;
};struct Person *ptr;
ptr = &p;
ptr->age = 25;
需要注意
- 点运算符只能用于结构体或联合体变量,而箭头运算符只能用于指向结构体或联合体的指针。
- 点运算符和箭头运算符都是从左到右结合的。
- 点运算符和箭头运算符的优先级高于其他大多数运算符。
实际例子
- 例如,我们可以定义一个结构体表示学生信息,然后使用点和箭头运算符来访问学生的姓名和年龄:
#include <stdio.h>struct Student {char name[20];int age;
};int main() {struct Student s;struct Student *ptr;// 使用点运算符访问结构体变量的成员s.age = 18;printf("Student's age: %d\n", s.age);// 使用箭头运算符访问指针指向的结构体的成员ptr = &s;ptr->age = 20;printf("Student's age: %d\n", ptr->age);return 0;
}
输出:
Student's age: 18
Student's age: 20

相关文章:
C语言---指针的两个运算符:点和箭头
目录 点(.)运算符箭头(->)运算符需要注意实际例子 C语言中的指针是一种特殊的变量,它存储了一个内存地址。点(.)和箭头(->)是用于访问结构体和联合体成员的运算符。…...
Linux 发布项目到OpenEuler虚拟机
后端:SpringBoot 前端:VUE3 操作系统:Linux 虚拟机:OpenEuler 发布项目是需要先关闭虚拟机上的防火墙 systemctl stop firewalld 一、运行后端项目到虚拟机 1、安装JDK软件包 查询Jdk是否已安装 dnf list installed | grep jd…...
相机与相机模型(针孔/鱼眼/全景相机)
0. 摘要 本文旨在较为直观地介绍相机成像背后的数学模型,主要的章节组织如下: 第1章用最简单的针孔投影模型为例讲解一个三维点是如何映射到图像中的一个像素 第2章介绍除了针孔投影模型外其他一些经典投影模型,旨在让读者建立不同投影模型…...
ARM32day4
1.思维导图 2.实现三个LED灯亮灭 .text .global _start _start: 使能GPIO外设时钟 LDR R0,0x50000A28 LDR R1,[R0]使能GPIOE ORR R1,R1,#(0X1<<4)使能GPIOF ORR R1,R1,#(0X1<<5) STR R1,[R0]设置引脚状态 LDR R0,0X50006000 LDR R1,[R0] 设置PE10为输出 BIC…...
从零开始写 Docker(六)---实现 mydocker run -v 支持数据卷挂载
本文为从零开始写 Docker 系列第六篇,实现类似 docker -v 的功能,通过挂载数据卷将容器中部分数据持久化到宿主机。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识: …...
网站引用图片但它域名被墙了或者它有防盗链,我们想引用但又不能显示,本文附详细的解决方案非常简单!
最好的办法就是直接读取图片文件,用到php中一个常用的函数file_get_contents(图片地址),意思是读取远程的一张图片,在输出就完事。非常简单~话不多说,直接上代码 <?php header("Content-type: image/jpeg&quo…...
Java八股文(RabbitMQ)
Java八股文のRabbitMQ RabbitMQ RabbitMQ RabbitMQ 是什么?它解决了哪些问题? RabbitMQ 是一个开源的消息代理中间件,用于在应用程序之间进行可靠的异步消息传递。 它解决了应用程序间解耦、消息传递、负载均衡、故障恢复等问题。 RabbitMQ …...
科研学习|论文解读——一种用于短文本消息中的释义检测的深度网络模型(IPM, 2018)
论文原标题 A deep network model for paraphrase detection in short text messages 摘要 本文研究释义检测,即识别语义相同的句子。检测用自然语言编写的相似句子的能力对一些应用程序至关重要,如文本挖掘、文本摘要、剽窃检测、作者身份认证和问题回答。认识到这一…...
鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Web)下篇
onRequestSelected onRequestSelected(callback: () > void) 当Web组件获得焦点时触发该回调。 示例: // xxx.ets import web_webview from ohos.web.webviewEntry Component struct WebComponent {controller: web_webview.WebviewController new web_webv…...
3月19日做题
[NPUCTF2020]验证🐎 if (first && second && first.length second.length && first!second && md5(firstkeys[0]) md5(secondkeys[0]))用数组绕过first1&second[1] 这里正则规律过滤位(Math.) (?:Math(?:\.\w)?) : 匹配 …...
Java8中Stream流API最佳实践Lambda表达式使用示例
文章目录 一、创建流二、中间操作和收集操作筛选 filter去重distinct截取跳过映射合并多个流是否匹配任一元素:anyMatch是否匹配所有元素:allMatch是否未匹配所有元素:noneMatch获取任一元素findAny获取第一个元素findFirst归约数值流的使用中…...
构建Helm chart和chart使用管道与函数简介
目录 一.创建helm chart(以nginx为例) 1.通过create去创建模板 2.查看模板下的文件 3.用chart模版安装nginx 二.版本更新和回滚问题 1.使用upgrade -f values.yaml或者命令行--set来设置 2.查看历史版本并回滚 三.helm模板内管道和函数 1.defau…...
深入理解OnCalculate函数的运行机制
文章目录 一、学习 OnCalculate 函数的运行原理的意义二、OnCalculate 函数原型三、OnCalculate 函数在MT4与MT5区别四、OnCalculate 函数的运行原理 一、学习 OnCalculate 函数的运行原理的意义 OnCalculate函数是MQL语言中的一个重要函数,它用于计算技术指标的值。…...
快速从0-1完成聊天室开发——环信ChatroomUIKit功能详解
聊天室是当下泛娱乐社交应用中最经典的玩法,通过调用环信的 IM SDK 接口,可以快速创建聊天室。如果想根据自己业务需求对聊天室应用的 UI界面、弹幕消息、礼物打赏系统等进行自定义设计,最高效的方式则是使用环信的 ChatroomUIKit 。 文档地址…...
nginx实现多个域名和集群
要通过Nginx实现多个域名和集群,你需要配置Nginx作为反向代理服务器,将来自不同域名的请求转发到集群中的相应后端服务器。下面是一个基本的配置示例,你可以根据自己的需求进行修改和扩展。 首先,确保你已经安装了Nginxÿ…...
C. Left and Right Houses
Problem - C - Codeforces 题目分析 <1>0:想被分割至左边; 1:想被分割至右边 <2>使得左右两侧均有一半及其以上的人满意(我*******) <3>答案若有多个,取最接近中间位置的答案 <4…...
缓存与内存:加速你的Python应用
在现代计算中,缓存和内存是提高程序性能的关键组件。在这篇文章中,我们将深入探讨这两个概念,了解它们是如何工作的,以及如何在Python中有效地使用它们来优化你的程序。 缓存与内存:加速你的Python应用 缓存和内存&…...
Go语言之函数、方法、接口
一、函数 函数的基本语法: func 函数名(形参列表)(返回值列表) {执行语句...return 返回值列表 } 1.形参列表:表示函数的输入 2.函数中的语句:表示为了实现某一功能的代码块 3.函数可以有返回…...
【Week Y2】使用自己的数据集训练YOLO-v5s
Y2-使用自己的数据集训练YOLO-v5s 零、遇到的问题汇总(1)遇到git的import error(2)Error:Dataset not found(3)Error:删除中文后,训练图片路径不存在 一、.xml文件里保存…...
蓝桥杯--基础(哈夫曼)
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner;public class BASIC28 {//哈夫曼书public static void main(String[] args) {Scanner Scannernew Scanner(System.in);int nScanner.nextInt();List<Integer&…...
Arcgis实战:坐标系与投影的精准转换技巧
1. 坐标系与投影的基础概念 第一次用ArcGIS做项目时,我犯了个低级错误——把地理坐标系的经纬度数据直接当成了平面距离计算。结果客户问我"这条道路有多长"时,我报出的0.0023这个数字让他一脸茫然。这就是没搞懂坐标系和投影区别的典型教训。…...
从零开始:如何用AutoModelForCausalLM.from_pretrained加载自定义模型(含本地模型和私有模型)
从零开始:AutoModelForCausalLM.from_pretrained加载自定义模型实战指南 当你第一次尝试加载一个自定义的因果语言模型时,可能会被各种参数和配置选项搞得晕头转向。作为一位经历过无数次模型加载失败的开发者,我深知那种看着报错信息却不知…...
为什么极限不是总存在的?
并不总是存在,是因为“趋近”的过程必须满足非常严苛的条件:唯一性和确定性。如果函数在趋近某个点时的表现变得“混乱”或“不一致”,极限就会失效。如果函数在趋近某个点时的表现变得“混乱”或“不一致”,极限就会失效。以下是…...
Postman便携版:Windows免安装API开发工具的新选择
Postman便携版:Windows免安装API开发工具的新选择 【免费下载链接】postman-portable 🚀 Postman portable for Windows 项目地址: https://gitcode.com/gh_mirrors/po/postman-portable 在现代API开发流程中,开发者常常面临工具安装繁…...
NVIDIA Profile Inspector终极指南:解锁显卡隐藏性能的完整方案
NVIDIA Profile Inspector终极指南:解锁显卡隐藏性能的完整方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款能够深度访问和修改NVIDIA显卡驱动配置的专业…...
Asian Beauty Z-Image Turbo商业应用:快速生成品牌宣传东方形象照
Asian Beauty Z-Image Turbo商业应用:快速生成品牌宣传东方形象照 大家好,今天我们来聊一个对品牌方、市场人员和内容创作者特别有吸引力的工具——Asian Beauty Z-Image Turbo。如果你正在为品牌宣传、社交媒体内容或营销活动寻找高质量的东方形象照&a…...
macOS极简部署:OpenClaw与Qwen3-14B镜像云端联调指南
macOS极简部署:OpenClaw与Qwen3-14B镜像云端联调指南 1. 为什么选择云端联调 去年冬天,当我第一次尝试在本地MacBook Pro上部署OpenClaw时,整整两天时间都耗在了环境配置上。从Homebrew版本冲突到Node.js权限问题,再到CUDA驱动不…...
文脉定序完整指南:从模型下载、镜像构建、服务启动到监控告警全流程
文脉定序完整指南:从模型下载、镜像构建、服务启动到监控告警全流程 如果你正在构建一个智能问答系统或知识库,一定遇到过这样的烦恼:系统能搜出一堆看似相关的文档,但最精准、最贴切的答案往往不在最前面。用户需要手动翻找&…...
查询直线的条数
#include <iostream> #include <vector> #include <set> #include <numeric> // For std::gcdusing namespace std;// 定义点结构 struct Point {int x, y; };// 定义直线结构,通过最简斜率和直线上的一点来唯一标识 // 实际上更好的办法是…...
Qwen3-14B私有部署镜像Node.js环境配置与API服务搭建
Qwen3-14B私有部署镜像Node.js环境配置与API服务搭建 1. 开篇:为什么选择Node.js对接Qwen3-14B 如果你正在寻找一个高效的方式来将Qwen3-14B大模型集成到你的应用中,Node.js可能是最合适的选择。作为现代JavaScript运行时,Node.js的非阻塞I…...
