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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运行gazebo机器人模型没有cmd_vel话题

运行赵虚左教程代码出现上诉问题 roslaunch urdf02_gazebo demo03_env.launch 原因&#xff1a;缺少某个包 在工作空间catkin_make编译发现报错 解决&#xff1a; sudo apt-get install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control 下载后再次运行launch文件…

60种常用可视化图表的使用场景——(下)

文章目录 31、径向柱图 32、热图 33、散点图 34、气泡图 35、气泡地形图 36、地区分布图 37、点示地图 38、连接地图 39、流向地图 40、甘特图 41、箱形图 42、子弹图 43、蜡烛图 44、跨度图 45、卡吉图 46、美国线 47、弦图 48、非彩带弦图 49、树形图 50、流程图 51、脑力激荡…

Volume优化

低效volume影响 解算时间&#xff1b;存储大小&#xff1b;渲染时间&#xff1b;服务器I/O&#xff1b;迭代次数&#xff1b;影响队友&#xff1b; 降低volume数据 体素精度分辨率&#xff1b;根据离相机的远近设置不同的分辨率&#xff1b;数据位数&#xff1b;删除不需要的数…

python知识点总结(一)

这里写目录标题 一、什么是WSGI,uwsgi,uWSGI1、WSGI2、uWSGI3、uwsgi 二、python中为什么没有函数重载&#xff1f;三、Python中如何跨模块共享全局变量?四、内存泄露是什么?如何避免?五、谈谈lambda函数作用?六、写一个函数实现字符串反转&#xff0c;尽可能写出你知道的所…

python接口自动化之DDT数据驱动测试

一、简单介绍 DDT&#xff08;Date Driver Test&#xff09;&#xff0c;所谓数据驱动测试&#xff0c;简单来说就是由数据的改变从而驱动自动化测试的执行&#xff0c;最终引起测试结果的改变。通过使用数据驱动测试的方法&#xff0c;可以在需要验证多组数据测试场景中&…

C#混淆心得

C#混淆心得 近期遇到混淆C#代码的需求&#xff0c;在网上找了很多办法&#xff0c;在此记录一下。 混淆的本质就是让代码变丑&#xff0c;让别人看不懂。 为什么要混淆&#xff1a; 1.保护核心代码 可以在一定程度上避免别人偷代码&#xff0c;从而保护重要的部分&#xf…

postman---postman参数化

我们在做接口测试的过程中&#xff0c;都会遇到同一个接口不同的数据&#xff0c;每次去一个个填写数据就太麻烦了&#xff0c;今天我们一起学习下如何通过postman进行参数化 一、参数化 参数化就是1个接口请求不同的数据&#xff0c;我们可以通过把请求的数据放入到一个文件…

滑动窗口和螺旋矩阵

209. 长度最小的子数组 题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续 子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度**。**如果不存在符合条件的子数组&#xff0c;返回…

LInux 进程替换(理解系统调用)

目录 一、替换原理 二、替换函数 1、exec函数 2、命名理解 3、返回值 4、使用execl/lp、execv/vp 5、执行自定义命令 Makefile编译多个文件 命令行程序mycmd.c 传入自己的可执行文件 7、子进程都继承父进程环境变量 8、execle/ve修改子进程环境变量 9、exece函数为…

编写测试用例的方法,这个是真的很好用

大家测试过程中经常用的等价类划分、边界值分析、场景法等&#xff0c;并不能覆盖所有的需求&#xff0c;我们之前讲过很少用到的因果图法&#xff0c;下面就来讲另一种不经常用到但又非常重要的测试用例编写方法——测试大纲法。 测试大纲法适用于有多个窗口&#xff0c;每个…

2024批量导出公众号所有文章生成目录,这下方便找文章了

公众号历史文章太多&#xff0c;手机上翻起来太费劲&#xff0c;怎么快速找到某一天的文章呢&#xff1f;比如深圳卫健委这个号从2014到2024发布近万篇文章。 公众号历史文章太多&#xff0c;手机上翻起来太费劲&#xff0c;怎么快速找到某一天的文章&#xff1f; 如果要找2020…

如何重置iPhone的网络设置?这里提供详细步骤

前言 本文介绍如何重置iPhone上的网络设置。该信息适用于iPhone 12到iPhone 6以及iOS 14到iOS 8。 如何在iPhone上重置网络设置 采取以下步骤重置iPhone上的网络设置&#xff1a; 1、在iPhone上&#xff0c;打开设置应用程序。 2、单击通用。 3、滚动到屏幕底部&#xff…

eplan新建符号及符号向量(实现新建符号旋转)

建符号之前先建符号库,这里直接新建符号 选择变量A,写符号名(英文字母),点确定 这时会打开一个空白页面,新建的符号在这里编辑 从原有的符号中插入过来直接编辑(也可自己画,最关键是自动引出线要加中断点) 插入进来后进行编辑: 编辑后: 符号向量A编辑完成后(保持符号编辑页面…

基于springboot实现酒店客房管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现酒店客房管理平台系统演示 摘 要 随着人们的物质水平的提高&#xff0c;旅游业和酒店业发展的速度越来越快。近年来&#xff0c;市面上酒店的数量和规模都在不断增加&#xff0c;如何提高酒店的管理效率和服务质量成为了一个重要的问题。伴随着信息技术的发…

2核4G服务器够用吗?性能测评自己看

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问&#xff1f;5M带宽下载速度峰值可达640KB/秒&#xff0c;阿腾云以搭建网站为例&#xff0c;假设优化后平均大小为60KB&#xff0c;则5M带宽可支撑10个用户同时在1秒内打开网站&#xff0c;并发数为10&#xff0c;经阿腾云测试&a…

Day1-力扣刷题学习打卡

1、两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以…

释放人工智能的力量:GPU服务器托管和高电机柜托管的关键作用

随着人工智能技术的不断发展&#xff0c;GPU服务器托管和高电机柜托管也变得愈发重要。这些技术在人工智能领域发挥着关键作用&#xff0c;为AI算法的训练和推理提供了强大的计算支持。 GPU服务器托管是指将GPU服务器放置在专门的数据中心中&#xff0c;通过云服务提供商提供的…

体系班第十七节(经典递归)

1汉诺塔 从左移到最右&#xff0c;圆盘必须满足小压大原则 写一个大方法&#xff0c;大方法包括两步&#xff1a;第一步将最后一个圆盘上面的所有的放到第二个塔上面&#xff0c;然后将最后一个圆盘放到最后塔上面&#xff0c;再把第二个塔上面圆盘全放在第三个塔上面 #incl…

C语言的位操作与位字段

C语言中的位操作允许程序员直接在整型变量的单个位或位组上进行操作。这种操作在许多低级编程任务中非常有用&#xff0c;尤其是在嵌入式系统编程中&#xff0c;如硬件操作、设备驱动及性能优化等场景。位操作主要使用以下几种位操作符&#xff1a; & &#xff08;按位与&a…

深入理解TCP:序列号、确认号和自动ACK的艺术

深入理解TCP&#xff1a;序列号、确认号和自动ACK的艺术 在计算机网络的世界里&#xff0c;TCP&#xff08;传输控制协议&#xff09;扮演着至关重要的角色。它确保了数据在不可靠的网络环境中可靠地、按顺序地传输。TCP的设计充满智慧&#xff0c;其中序列号&#xff08;Seq&a…