问题标签 [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 投票
3 回答
1658 浏览

c++ - c++中的指针参数接收地址?

我知道指针存储了y的地址。并调用 *yPtr 取消引用 y。

如果我调用了 void 函数:

如果函数将指针作为参数,那么对函数的调用如何使用地址?我知道 nPtr 存储地址,但为什么不能将其定义为。

我的主要问题是:为什么接收地址参数的函数需要指针参数来接收地址?

0 投票
5 回答
161 浏览

c - 为什么 *num 不显示第零个元素值?

在这段代码中:

据我所知,printf 语句都将打印第一个元素的地址,num因为在第一个语句中,num是一个指向 int 的指针。

但是如果num是一个指针,那么它也应该有任何地址,但在打印它的地址(使用printf("%d", &num))时,它显示了第一个元素的地址。

在二维数组中,整个事情也变得混乱:

该程序正在打印第零个元素的地址,即num[0][0]. 但它为什么这样做呢?为什么不打印存储在其中的值,因为它们都有相同的地址(num,num[0]num[0][0])?

0 投票
2 回答
644 浏览

c++ - 为什么地址运算符作为 C++ 类的默认成员出现,它是什么?

C++ 类中有 5 个默认成员。默认构造函数、析构函数、复制构造函数、赋值运算符和地址运算符。

  1. 什么是地址运算符?是className* operator &() {}吗?

  2. 如果是这样,为什么编译器会默认生成这个地址运算符(因为我们在 C 中已经有了一个地址运算符,我们可以在没有额外开销的情况下获得对象的地址)?有什么特别的目的吗?

0 投票
3 回答
127 浏览

c++ - Why does a pointer behave like this in c++

I found this program in a contest question paper:

The output is 2 5

now when I change the 5th line to int *ptr=(int*)(&a); and printf("%d %d ",*(a + 1), *(ptr));

The output becomes 2 1

In the first case the ptr got the last address of the array+1 and in the second case the ptr got the same address of the array(address of a).

My doubt is why does this assignment show different kind of behavior when the a is incremented and assigned to ptr and when a is assigned to ptr without incrementing?

0 投票
4 回答
211 浏览

c - 为什么我不能在 C 中使用 `&&a`?

0 投票
4 回答
411 浏览

c - 用 C 中的交换程序理解指针

我试图更好地理解 C 中的指针和引用,我的课程提供了以下程序作为示例。

我将以下内容混为一谈,看看它是否能帮助我更好地理解正在发生的事情,主要是关于使用 & 与 *(取消引用)的需要。基本上,声明指向 int 类型的指针 (int* a) 与使用星号“取消引用” (*a = *b) 的语法对我来说相当混乱,我希望有人能启发我。这是上面的另一个版本,我认为可以帮助澄清,但实际上并没有:

简而言之,我的问题是,这两个程序在做什么之间是否存在功能差异?*a = *b取消引用 ( ) 与使用&运算符 ( )之间有什么区别*a = &x”。

0 投票
7 回答
2911 浏览

c - &p 和 p 有什么区别

如果我有一个指向整数的指针,例如:

然后打印地址

上一个和这个有什么区别:

0 投票
1 回答
265 浏览

c++ - 读取不同大小的字符串 // 字符串操作 C++

所以我刚开始学习 C++,我的教授简要介绍了地址 (&) 和取消引用 (*) 运算符。我不精通 C++,但我一直在寻找零件并使用常识来组合到这段代码中。它无法构建,所以请帮助!

作业 - 编写一个程序,不断读取不同大小的字符串。如果输入字符串的长度大于 1,则将其存储在向量中。当输入字符串的长度为 1(单个字符)时,您将输出存储在向量中的字符串,该字符串的第一个字母与输入字符匹配。在阅读字符串“quit”时继续这样做。

0 投票
1 回答
68 浏览

c - C 指向数组的指针;原始

我使用的 Visual Studio 2015 没有显示与我使用指针相关的编译器警告。如果我暂时提到一个指向char* p数组的指针char name[] = "My Name",我没有任何指导说明以下内容并不完全相同;即导致指向数组第一个字符的指针

每个的结果printf都是相同的值,因为我没有看到编译器警告,我需要指导哪种形式是正确的。

这与指向 int 的指针相同,因此我没有看到编译器警告,因此我假设以下内容是等效的

有人可以澄清这一点,或者帮助我在 Visual Studio 2015 中打开编译器警告,而无需切换到 TDM GCC + Eclipse Oxygen。

要点 - 语法具体并更正所有警告

0 投票
3 回答
280 浏览

c++ - 如果 std::addressof 是 & 的可读版本。*& 的可读版本是什么?

*&x

使用 c++11,我们可以写成

* std::addressof(x)

但是,这个表达式是否有更易读的版本?

godbolt.org/g/9StHsE

wandbox.org/permlink/ZzQ38IlDficO5UOi