问题标签 [pass-by-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
59 浏览

c - 在C中删除带有指向指针的列表

C语言的部分代码在这里:

我对 deleteList 函数的工作方式感到困惑。所以争论是一个指向 List 结构的指针。所以我们有:

所以我有一些问题:

  1. 那么函数deleteList()中的*p是什么?是pointer_1还是别的什么?
  2. = 之前的 *p 与 = 符号之后的 *p 的含义相同吗?
  3. *p 和 (*p) 之间有区别吗?

假设我们有:

说我们想删除磅。理论上我明白了。您将 la->next 更改为指向 lc。但我对指针业务感到困惑。deleteList() 的参数是什么?是,deleteList(la->next)?或者是其他东西?然后是真正令人困惑的部分。*p = ... 应该是 la->next 因为这是我们要更改的指针。但是...(*p)->next,这不就是磅吗?但是我们想要lc?所以看起来 *p 在同一行中有不同的含义?!

0 投票
2 回答
45 浏览

c++ - 将指针作为函数参数传递

我正在传递一个指向函数的指针,目的是修改保存在原始地址的数据。

我可以使用此代码获得所需的输出,即 5 7 7

只是想知道是否有更好/易于阅读的方法来处理这个问题。

0 投票
1 回答
61 浏览

c - 如何将动态数组以及索引位置传递给 C 中的函数?

我需要此功能将动态分配的数组和 idx 都传递给函数并为其赋值。当我尝试分配代码中提到的值 2 时,会发生段错误。这有什么问题?我该如何解决?

0 投票
1 回答
36 浏览

c++ - C++,指针传递

我实际上在想这个程序应该抛出一个编译错误(因为我正在将值传递给交换方法而不是 &a,&b)但我很震惊地看到它成功执行了。所以,我发布这个是为了知道它是如何/为什么没有任何错误地执行的。

0 投票
4 回答
76 浏览

c - C 中结构的表达式“通过引用传递”

我最近有一个关于 C 结构的课程,讲师使用“通过引用传递”这个表达来描述将指向结构的指针传递给函数的动作。我一直读到 C 没有“按引用传递”,因为与 Cpp 不同,按引用传递只能通过按值传递指向某个对象的指针来模拟——我们宁愿说“按指针传递”。所以我想知道结构的工作方式是否有所不同,并且这种表达方式在这种情况下是合理的。

0 投票
3 回答
52 浏览

c - 为什么我没有使用 c 函数中的指针获得该程序所需的输出?

头文件:circlehead.h

C文件1: circle.c

主要功能circle_main.c

我已将文件链接到一个可执行文件中:

但我得到的输出是 area: 3.728 and perimeter: 0.000 代码编译成功。我究竟做错了什么?

0 投票
4 回答
68 浏览

c - C、传值,在Linux中

我有一个功能如下:

这是主要功能。

我想更改“检查”变量的值,但它不起作用。我在哪里犯错?谢谢!

我在运行时使用makefile。编辑: malloc 已被删除,现在它给了我 Segmentation fault (core dumped) 错误

0 投票
2 回答
513 浏览

c++ - std::get_if (std::variant) 通过指针而不是值/&/const& 获取变体参数是否有任何实际原因?

我从未使用过std::get_if,并且由于它的名称与 不同std::get,因此我看不出它的参数应该是指针¹(而std::get具有引用参数)的原因。


¹如果它也被命名std::get,那么重载决议就足够了。


是的,我的问题可能是因为 std:: any_cast () 和 std::get_if(std::variant) 绝对有必要将指针作为参数?,但关键是那里没有解决vs的答案,只有一条评论;唯一的答案集中在.std::get_ifstd::getstd::any_cast

0 投票
1 回答
34 浏览

c++11 - 使用带有指针向量的 find_if:如何通过 const 引用将指针传递给 lambda?

在下面的代码中,我尝试通过 find_if 比较一个指针向量并确定其中包含一个成员 a == 5 (在这种情况下当然是两者,但它显示了我的情况)。但是它不编译。

根据我在这里的解释,find_if 提供了实际的向量条目作为 lambda 函数的参数,该函数传统上通过 const ref 占用。但是我如何为指针指定这个,因为我有指针作为向量条目?

(对于冗长的错误消息,使用 gcc 11.1 将此代码带到 Godbolt,但我想这取决于我不知道如何正确指定 lambda 参数)

0 投票
2 回答
131 浏览

c++ - 我可以引用 C++ 中的指针吗?

我将对指针变量的引用传递给函数。该函数将做一些事情并将指针变量指向某个对象。代码:

但是,如果我想传递对指向 const 的指针的引用,事情就会变得更加棘手。我希望更改指针变量本身(因此引用),但我不希望Obj使用此指针更改指向的实例。在我的想象中,它应该是这样的:

编辑:以下错误无法重现,因此被删除。这个问题的重点是指针引用的概念,而不是解决问题

C++ 给出了这个编译错误:

一些想法:

错误无法重现

  1. 我相信当我尝试将“未命名变量”传递给参考参数时会显示此错误。在这种情况下,我正在传递变量ptr,这应该不是问题。
  1. ptr作为参数传入,因为该函数具有有用的返回值。设置ptr更像是这个功能的副产品,调用者可以选择忽略或使用。

  2. 我也可以尝试使用Obj**作为参数,它是通过指针传递而不是通过引用传递。这在 aconst Obj**作为参数传递时有效。我只是想知道如果参数通过引用传递会怎样。