c语言指针学习:交换变量值1

交换地址和交换指针

//交换pt_x和pt_y所指向的地址int *temp;temp = pt_x;  pt_x = pt_y;  pt_y = temp;  
//交换pt_x和pt_y的值int temp;temp = *pt_x;  *pt_x = *pt_y;  *pt_y = temp;

 假如没有指针p

int i=1;
p=&i;
//p指的是所指向变量的地址 即 i的地址
//*p指的是指针所指向变量的内容 即i的内容 1

*p : 所指向变量的 内容
p :所指向变量的 地址 

交换指针指向的地址,并没有用*取地址中的值,因此原地址中的值并没有发生改动


#include <stdio.h>//只交换了指针指向的地址,并没有改变指针所指向地址的值
int main(int argc, char** argv)
{int x, y;int*pt_x, *pt_y;x = 2, y = 8;pt_x = &x, pt_y = &y;printf("交换前:x = %d, y = %d\n", x, y);int *temp;temp = pt_x;  pt_x = pt_y;  //pt_x指针指向y地址pt_y = temp;  //pt_y指针指向x地址printf("交换后:x = %d, y = %d\n", x, y);printf("交换后:*pt_x = %d, *pt_y = %d\n", *pt_x, *pt_y);return 0;//输出结果//交换前:x = 2, y = 8//交换后:x = 2, y = 8//交换后:x = 8, y = 2
}

用*取地址中的值,交换指针地址中的值


#include <stdio.h>
int main(int argc, char** argv)
{int x, y;int*pt_x, *pt_y;x = 2, y = 8;pt_x = &x, pt_y = &y;printf("交换前:x = %d, y = %d\n", x, y);int temp = *pt_x;  //temp指针获取pt_x地址中的值*pt_x = *pt_y;  //pt_x指针指向的地址不变,只是将pt_x地址中的值修改成了pt_y地址中的值*pt_y = temp;  //pt_y指针指向的地址不变,只是将pt_y地址中的值修改成了temp值printf("交换后:x = %d, y = %d\n", x, y);printf("交换后:*pt_x = %d, *pt_y = %d\n", *pt_x, *pt_y);return 0;//输出结果//交换前:x = 2, y = 8//交换后:x = 8, y = 2//交换后:*pt_x = 8, *pt_y = 2

指针变量好比手术刀,能够获取地址信息,并通过`*`操作地址中的数值。 - 不管指针变量带不带`*`, 它都是指针变量,包含了指定地址信息,而且可以通过`++`操作实现**连续地址空间的访问**,但是这样容易出现访问越界问题;你可以试一下上面第二份代码,在交换之后pt_x++,看看*pt_x输出的结果是2,不是8 - 区分好是 地址交换 还是 指针所指向的内容的交换。

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

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

相关文章

Google I/O 2024:探索未来AI技术的无限可能

近日&#xff0c;Google I/O 2024大会圆满落幕&#xff0c;带给我们一场关于人工智能的盛宴。在这场大会上&#xff0c;Google推出了一系列令人激动的AI新功能和工具&#xff0c;让我们得以一窥未来的科技发展。今天&#xff0c;就让我来为大家总结一下这些亮点吧&#xff01; …

springboot报错‘url’ attribute is not specified and no embedded datasource could

APPLICATION FAILED TO START Description: Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you wa…

你是学会了还是学废了:Elasticsearch 7 集群拷贝到其它环境如何重置密码

欢迎您关注我的公众号【尚雷的驿站】 公众号&#xff1a;尚雷的驿站 CSDN &#xff1a;https://blog.csdn.net/shlei5580 墨天轮&#xff1a;https://www.modb.pro/u/2436 PGFans&#xff1a;https://www.pgfans.cn/user/home?userId4159 前言 本文描述了将生产ES集群打包拷贝…

知识图谱 | 语义网络写入图形数据库(含jdk和neo4j的安装过程)

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本文主要介绍如何使用 Neo4j 图数据库呈现语义网络&#xff0c;并通过 Python 将语义网络的数据写入数据库。具体步骤包括识别知识中的节点和关系&#xff0c;将其转化为图数据库的节点和边&#xff0c;最后通过代码实现数据的写…

【车载开发系列】AUTOSAR BSW基础模块常用术语

【车载开发系列】AUTOSAR BSW基础模块常用术语 BSW供应商提供的AUTOSAR BSW模块有&#xff1a;EcuM、Os、WdgM、WdgIf、BswM、Rte这六种。AUTOSAR BSW当中常用的属于如下。 名称说明WdgMWatchdog Manager的简称WdgIfWatchdog Interface的简称BswMBasic Software Manager的简称…

css案例 tab上下滚动,左右滚动

效果图&#xff1a; 完整代码&#xff1a; <template><view class"content"><view class"content-item"><view class"content-title"><h4>美食热搜</h4><ul><li>火鸡面</li><li>糖…

听劝!普通人千万别随意入门网络安全

一、什么是网络安全 网络安全是一种综合性的概念&#xff0c;涵盖了保护计算机系统、网络基础设施和数据免受未经授权的访问、攻击、损害或盗窃的一系列措施和技术。经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”…

Batch Normalization 批归一化 每个mini-batch进行归一化操作 显著提高深度神经网络的训练速度和性能

Batch Normalization Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift NLP相关Paper笔记和代码复现 本文提出了Batch Normalization(批标准化)技术,旨在加速深度神经网络的训练过程,并通过减少内部协变量偏移(internal…

图文教程 | 2024年IDEA安装使用、破解教程,JDK简易下载方法

前言 &#x1f4e2;博客主页&#xff1a;程序源⠀-CSDN博客 &#x1f4e2;欢迎点赞&#x1f44d;收藏⭐留言&#x1f4dd;如有错误敬请指正&#xff01; 目录 一、IDEA安装 二、激活 三、JDK安装 四、JDK环境配置 五、验证 一、IDEA安装 进入官网下载&#xff1a; Other…

命令行中,Python 想使用本地环境,但总是显示为Anaconda的虚拟环境

电脑环境 Python 本地环境&#xff08;Python3.9.5&#xff09;Anaconda 虚拟环境&#xff08;Python3.8.8&#xff09; 遇到的问题 在cmd 中&#xff0c;我想在本地环境使用 Python、pip &#xff0c;但它却是一直识别成Anaconda的虚拟环境。 解决方法 环境变量配置中&am…

Go Gin使用JWT实现认证机制

什么是JWT JWT是JSON Web Token的缩写,是一种跨域认证的解决方案。 使用JWT解决什么问题 传统的登录认证的实现,依赖客户端浏览器的cookie和服务器的session,这种实现登录的方式有很大的局限性。 对于部署在单台服务器的应用来说,使用cookie+session登录认证的方案尚…

✅什么是时间轮?

一、问题解析 时间轮算法&#xff08;Time Wheel Algorithm&#xff09;是一种用于处理定时任务和调度的常见算法。 时间轮算法主要需要定义一个时间轮盘&#xff0c;在一个时间轮盘中划分出多个槽位&#xff0c;每个槽位表示一个时间段&#xff0c;这个段可以是秒级、分钟级、…

数据结构(十五)----排序算法(2)

目录 一.选择排序 1.简单选择排序 2.堆排序 •建立大根堆 •基于大根堆进行排序 堆排序算法效率&#xff1a; 堆排序算法稳定性&#xff1a; 3.堆的插入和删除 •在堆中插入新元素 •在堆中删除元素 二.归并排序 归并排序算法效率&#xff1a; 归并排序算法的稳定…

Reverst:基于QUIC协议和HTTP3的反向隧道工具

关于Reverst Reverst是一款功能强大的反向隧道工具&#xff0c;Reverst由一个具备负载均衡功能的反向隧道服务器和一个服务器-客户端库组成&#xff0c;该工具使用Go语言开发&#xff0c;基于QUIC和HTTP/3实现其功能。 关于QUIC和HTTP/3 QUIC&#xff0c;即快速UDP互联网连接…

队列的实现与OJ题目解析

"不是你变优秀了, 那个人就会喜欢你." 文章索引 前言1. 什么是队列2. 队列的实现3. OJ题目解析4. 总结 前言 感情可以培养是个伪命题. 如果有足够多的时间和爱, 就可以让另一个人爱上你的话, 那谁和谁都可以相爱了. 爱情之所以会让人死去活来, 是因为, 答案都写在了…

photoshop(PS)有什么快速提升工作效率的功能?或者实用功能?这里告诉你7条!

1:文件太多&#xff0c;不方便马上找到需要插入元素&#xff08;元素放入PS会发现&#xff0c;位置不知道在哪里&#xff09;&#xff0c;点击需要选中或者搭配的元素&#xff0c;ctrlV就可以快速插入目标/图层元素的位置了&#xff01; 点击当前元素&#xff0c;选中&#xf…

Linux备份---异地

参考文档&#xff1a;Linux环境实现mysql所在服务器定时同步数据文件到备份服务器&#xff08;异地容灾备份场景&#xff09;_mysql异地备份-CSDN博客 通过SSH进行连接&#xff1a; 应用服务器&#xff1a; 通过ssh-keygen -t rsay建立ssh通信的密钥 密钥建立后&#xff0c;…

边缘计算安全有多重要

德迅云安全研究发现边缘安全是对存储或处理在网络边缘的数据的保护。边缘可以用不同的方式定义&#xff0c;但一般来说&#xff0c;它包括企业直接控制之外的任何设备或位置。这可能包括传感器、连接物联网的设备和移动设备。 边缘计算正在彻底改变商业运作方式。这引发了对边缘…

VuePress与Docusaurus:构建高效文档站点

VuePress 和 Docusaurus 都是非常流行的开源静态站点生成器&#xff0c;特别适用于构建技术文档和知识库。它们都提供了美观的预设主题、易于使用的Markdown语法支持以及自动生成的导航和侧边栏。 2500G计算机入门到高级架构师开发资料超级大礼包免费送&#xff01; VuePress…

维修AB罗克韦尔工控机 PanelView 900 2711-T9C8 SER C 触摸屏人机界面

可视化和 HMI 解决方案可帮助您满足生产力、创新和全球化需求。为电子操作员界面终端、分布式客户端/服务器 HMI 和信息软件提供了一致的外观和感觉。编程工具和高级软件应用程序包括远程访问和数据分析&#xff0c;可加速开发并提高效率。 图形终端 图形终端提供各种尺寸、操…