在C中交换指针[重复]

2024-01-03

# include <stdio.h>
void mystery (int *ptra, int *ptrb) {  
     int *temp; 
     temp = ptrb;  
     ptrb =ptra; 
     ptra = temp; 
} 
int main () { 
    int a = 2016, b=0, c= 4, d = 42; 
    mystery (&a, &b);
    if (a < c) 
          mystery (&c, &a); 
    mystery (&a, &d); 
    print f("%d\n", a); 
}

我的尝试:

a 和 d 不会交换,因为函数 myy() 不会更改值,而是更改函数本地的指针。

请您用正式的方式解释一下好吗?如何运作 功能mystery?


在 C 中,函数总是按值传递。因此,您所做的指针交换在函数外部没有任何影响,因为您只是更改本地值。

您需要交换它们指向的内容,而不是交换指针,即您需要取消引用它们:

void mystery (int *ptra, int *ptrb) {  
     const int temp = *ptrb;
     *ptrb = *ptra; 
     *ptra = temp; 
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在C中交换指针[重复] 的相关文章

随机推荐

  • 在 PhoneGap IOS 上缓存图像的最佳方法

    我正在构建一个 PhoneGap ios 应用程序 用于使用 JSON 从服务器导入数据 该数据包含图像 URL 我已经用于将数据缓存在本地存储中 以便在应用程序没有互联网连接时使用它 但我有一个问题是缓存图像的最佳方式是什么 我正在考虑将
  • 在 RStudio 中安装包时出错:从连接读取时出错

    我最近更新了 R 版本 3 4 1 和 RStudio 版本 1 0 143 现在无法从 Rstudio 安装软件包 如果我直接使用 R 安装包install packages 效果很好 如果我尝试使用以下任一方法在 Rstudio 中安装
  • 构造函数调用自身

    我最近发现无参数构造函数和多参数构造函数不能轮流调用对方 这种限制的根本原因是什么 有人可能会说构造函数是初始化资源的地方 因此不能递归调用它们 我想知道这是否是唯一的原因 函数 方法 过程可以递归调用 为什么不是构造函数 答案在于 对另一
  • 获取焦点(或 Tab)顺序

    我使用 Qt Designer 设计了一个用户界面 并使用 编辑选项卡顺序 模式设置了选项卡顺序 现在我想知道 出于其他原因 不是那么重要 是如何获取 ui 中特定 QWidget 的 Tab 键顺序 我的意思是 如果我有几个小部件 并且说
  • 工作流程语言? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找当前工作流程语言的列表 我知道关于BPEL http en wikipedia org wiki Business Proces
  • 查询特定 Twitter 用户的 tweepy (get_followers) 中的分页

    我对使用游标类的 tweepy 和分页相当陌生 我一直在尝试使用光标类来获取特定 Twitter 用户的所有关注者 但我不断收到错误消息 tweepy error TweepError This method does not perfor
  • Apache Tomcat 9 重写阀不工作

    我一直在尝试设置我的 tomcat 9 重写阀门 在全局级别 但没有成功 遵循我在互联网上找到的每个教程 但无论我如何配置我的 rewirte config 阀门根本无法工作 所以我写了我能想到的最简单的 rewrite config 它只
  • Vue 和 Bootstrap Vue - 动态使用插槽

    我试图在 bootstrap vue 表中创建一个插槽 以使用自定义组件呈现任何布尔值 所以我有一个简单的表
  • 自动部分重新索引何时在 Magento EE 1.13 中实际运行?

    Magento 1 13 为大多数索引添加了部分索引 并能够将索引过程推迟到异步运行的 cron 作业 我的问题是 是否有现有的 cron 作业可以执行此操作 或者这是我必须自己设置的东西 文档对此并不清楚 http www magento
  • 如何在 Android 应用程序中单击按钮时打开网站?

    我正在设计一个应用程序 有几个按钮供用户单击 单击按钮后 用户将被定向到适当的网站 我该如何实现这个目标 如果您正在谈论 RCP 应用程序 那么您需要的是 SWTlink widget Here http dev eclipse org v
  • 在 Google 表格中查找默认填充颜色的颜色代码

    我正在编写一个脚本 使用以下命令为 Google 电子表格中的单元格着色Range setBackground color 方法 我想使用一种预设填充颜色 但我很难找到确切的颜色代码 十六进制 RGB 我只想要一个官方列表 000000 4
  • 如何知道应用程序是否首次在 Mac 上运行

    在Windows上 我们可以将值写入注册表来知道 但我如何知道我的应用程序是否是第一次在 Mac 上运行 我需要执行一些初始化任务 Thanks 您正在寻找班级NSUserDefaults see 苹果文档 http developer a
  • 完整的未来 | thenApplyAsync 与 thenCompose 及其用例[重复]

    这个问题在这里已经有答案了 我试图理解 CompletableFuture 并遇到了两种方法 thenApplyAsync 和 thenCompose 我试图理解这两者之间的区别 CompletableFuture
  • HTML5:通过 JavaScript 绘图后将透明度应用于 Canvas

    我试图将多个对象绘制到画布元素上 然后将它们干净地淡出 然而 当尝试使用 globalAlpha 来实现此目的时 您可以看到通常会被遮挡的对象片段 因为每个对象都变得单独透明 解释 考虑以下代码 context fillStyle yell
  • Moment Js 获取两个日期之间的小时差

    我可以使用 MomentJs 获取两个日期之间的差异 如下所示 moment end diff startTime format m m s s 但是 我还想在适用时显示小时 仅当已过去 gt 60 分钟时 但是 当我尝试使用以下命令检索持
  • 用于分析 OCaml 代码的工具 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 除了在编译时使用 p 选项然后使用 gprof 之外 是否有人知道用于分析 OCaml 代码的程序 我
  • R 数据表 setkey - 错误某些列不在 data.table 中

    我想使用 data tablesetkey具有预定义列表id and categories 但收到错误消息 gt setkey tr id cat dt id categories Error in setkeyv x cols verbo
  • 有没有办法让 BaseX 提供 HTML 文档服务?

    有没有办法让 BaseX 的 HTTP 服务器提供 HTML 文档 该文档可以作为原始资源存储在数据库中 也可以存储在文件系统中 具有 text html 内容类型 以便可以在浏览器中显示 该文档是一个向 BaseX 发出 XHR 请求的网
  • 如何在 R 中将因子转换为日期时间?

    这个问题对你们中的一些人来说可能很简单 但请耐心等待 因为我是 R 的初学者 我有一个数据框 其中有一个因子列 称为时间 其中包含日期时间数据 如下所示 time 01 01 2011 00 10 02 01 2011 03 00 03 0
  • 在C中交换指针[重复]

    这个问题在这里已经有答案了 include