问题标签 [address-operator]

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 投票
4 回答
10054 浏览

c++ - 为什么有人要重载 & (address-of) 运算符?

可能重复:
有什么正当理由使一元运算符& 过载?

我刚读了这个问题,我不禁想知道:

为什么有人可能想要重载&("address-of") 运算符?

有任何合法的用例吗?

0 投票
1 回答
4606 浏览

c++ - 将静态方法作为参数传递,不需要地址运算符?

我正在玩 Boost.Thread 并且我注意到在传递静态成员函数作为参数时是否使用运算符 (&) 的地址似乎并不重要。没关系吗?如果不是,为什么?一种方法比另一种更正确吗?

0 投票
4 回答
164 浏览

c - 与 sizeof 和 addressof 的明显差异

sizeof(long) 返回 8 个字节,但 &along(long 的地址)是 12 个十六进制数字(48 位)或 6 个字节。在使用 clang 编译的 OS X 64 位上。这里有差异还是这是一个真正的 64 位地址空间?

0 投票
0 回答
70 浏览

c++ - 重载的地址运算符。我怎么知道对象的地址

可能重复:
重载一元运算符 &

可以确定此类对象的地址吗?

0 投票
1 回答
549 浏览

vb.net - vb.net 在共享 subs 中传递变量

但是一旦启动代码,我就会收到您在附加图片中看到的错误

错误

但奇怪的是,我确实传递了我正在寻找的价值:

错误 2

0 投票
1 回答
712 浏览

c++ - CUDA:结构的共享数据成员和对该结构的引用成员具有不同的地址、值

好的,这就是问题所在:使用 CUDA 1.1 计算 gpu,我试图为每个线程维护一组(可能数量不同,这里固定为 4 个)索引,这是我作为 struct var 成员保留的引用。我的问题是在访问成员数组时获取对结构的引用会导致不正确的结果:我用 0 初始化成员数组值,当我使用原始结构 var 读取数组 vals 时,我得到正确的值 (0) ,但是当我使用对 struct var 的引用阅读它时,我得到了垃圾(-8193)。即使使用类而不是结构也会发生这种情况。

为什么tmp低于!= 0 ??

c++ 不是我的主要语言,所以这可能是一个概念问题,或者它可能是在 cuda 中工作的一个怪癖

0 投票
2 回答
9207 浏览

c++ - 函数调用中 * 和 & 运算符的区别

可能重复:
C++ 函数:& 与星号
结合参数的各种符号(*、& 等)之间有什么区别?

我想知道C++ 函数调用中地址运算符&和引用运算符之间的区别。*例如采取以下功能

让我们在我们的main()函数中这样调用它......

首先,为什么&操作员允许我像指针一样分配一个值(当它不是指针时,分配一个在 RAII 和函数范围内幸存的值foo()),因为它可以在我的main()函数中打印出来即使不是static?我假设它不是指针,因为我可以size()通过使用.运算符而不是->用于指针的运算符来访问该方法。

&其次,在函数参数中使用运算符与使用运算符有什么区别*?它甚至与像这样的普通变量不同std::string param吗?它似乎被称为(foo(test)而不是foo(&test))。

0 投票
1 回答
525 浏览

vba - 将实现 ATL 接口的 VBA 类传递给 ATL 方法

编辑 :

我有一个 ATL 简单对象 MyATLObject,只有一种方法:

其中 toto 是由定义的模板函数

其中 FCTPTR 定义为

typedef double (__stdcall * FCTPTR)( double );

我的 ATL 方法使用 double x 来存储 toto 的结果,而 long AddressOfFunc 是 VBA 函数的 AddressOf。

这通过地址将 VBA 函数传递给 ATL 方法。这太可怕了。否则,它如何能够做同样的事情——将 VBA 函数传递给 ATL 方法,例如通过在 ATL 端定义一个接口?

非常感谢。

///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ////////////////////////////

我的问题的第一个版本:

我实际上是在做以下事情:创建一个 ATL/COM 项目,向其中添加一个名为 MyATLObject 的“简单 ATL 对象”:

1)在idl文件中:

2 在 MyATLObject.h 文件中:

一个

和一个

课外,课内

最后在 MyATLObject.cpp 文件中:

MyStupidEvaluator.h 包含:

这只是一个模板函数,它返回任何函数对象的零值,即承认 () 运算符的类型名(或类)。

现在,这在编译后给了我一个 dll。

这就是 c++ 部分的全部内容。现在,我在 VBA 和 VBA 中引用了这个 dll:

a) 我定义了一个函数

b) 和一个子

c) 执行这个子程序会给我,在工作表“Test1”的 V“alue_at_0”(这里只是一个单元格)范围内,函数 F 的 0.0 处的值。

我总是这样工作:toto 模板函数在这里是微不足道的(评估为 0.0),但通常它可能是一个数值积分例程,或者是一个求根例程,需要 c++ 来提高速度;由于 AddressOf VBA 关键字,我一直通过它们的地址传递 VBA 函数:这给了我一个 long,我将它传递给我的 ATL 方法 EVAL,我将这个 long 转换为函数指针 (FCTPTR) p,然后应用我的例程“ toto" 到 *p,这给了我一个双倍,我将它传递回我的 ATL 方法。

这很酷,一切正常,但是......我觉得这太糟糕了!而且真的很不雅。这就是为什么我想做以下事情:

在 ATL 端“以某种方式”设计一个接口,一个

这将由 VBA 类 VBAClass1 在 VBA 中实现(通过 VBA 的实现),并将该 VBA 类的实例传递给我以前的 VBA 方法的新版本,以在 0.0 处执行评估。

我的问题是:我根本不是 ATL 方面的专家,也不是界面创建方面的专家:我已经成功地在界面创建方面做了真正愚蠢/琐碎的事情,好吧,但我真的不知道如何设计界面做我想做的是:

ATL 中的一个接口(根据定义,它只有方法,通过 ATL 构造!)将具有“某物”扮演类成员的角色,成员跟踪 VBA 函数仍将通过 ATL 传递给他方法。

任何帮助将不胜感激,伙计们。

这是我第一次来这里,如果消息不是完美/最佳形式,请提前道歉。

先感谢您。

拉夫

0 投票
9 回答
17163 浏览

c - 可以将地址分配给C中的变量吗?

是否可以在内存中为变量分配您想要的地址?

我试图这样做,但我收到一个错误,因为“需要左值作为赋值的左操作数”。

我的方法有什么问题?C语言中有什么方法可以将我们想要的地址分配给变量吗?

0 投票
4 回答
6030 浏览

c - 带有地址运算符的 printf 字符串文字

谁能向我解释为什么"Hello"&"Hello"产生相同的结果?