问题标签 [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.
c++ - c++中的指针参数接收地址?
我知道指针存储了y的地址。并调用 *yPtr 取消引用 y。
如果我调用了 void 函数:
如果函数将指针作为参数,那么对函数的调用如何使用地址?我知道 nPtr 存储地址,但为什么不能将其定义为。
我的主要问题是:为什么接收地址参数的函数需要指针参数来接收地址?
c - 为什么 *num 不显示第零个元素值?
在这段代码中:
据我所知,printf 语句都将打印第一个元素的地址,num
因为在第一个语句中,num
是一个指向 int 的指针。
但是如果num
是一个指针,那么它也应该有任何地址,但在打印它的地址(使用printf("%d", &num)
)时,它显示了第一个元素的地址。
在二维数组中,整个事情也变得混乱:
该程序正在打印第零个元素的地址,即num[0][0]
. 但它为什么这样做呢?为什么不打印存储在其中的值,因为它们都有相同的地址(num,num[0]
和num[0][0]
)?
c++ - 为什么地址运算符作为 C++ 类的默认成员出现,它是什么?
C++ 类中有 5 个默认成员。默认构造函数、析构函数、复制构造函数、赋值运算符和地址运算符。
什么是地址运算符?是
className* operator &() {}
吗?如果是这样,为什么编译器会默认生成这个地址运算符(因为我们在 C 中已经有了一个地址运算符,我们可以在没有额外开销的情况下获得对象的地址)?有什么特别的目的吗?
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?
c - 用 C 中的交换程序理解指针
我试图更好地理解 C 中的指针和引用,我的课程提供了以下程序作为示例。
我将以下内容混为一谈,看看它是否能帮助我更好地理解正在发生的事情,主要是关于使用 & 与 *(取消引用)的需要。基本上,声明指向 int 类型的指针 (int* a) 与使用星号“取消引用” (*a = *b) 的语法对我来说相当混乱,我希望有人能启发我。这是上面的另一个版本,我认为可以帮助澄清,但实际上并没有:
简而言之,我的问题是,这两个程序在做什么之间是否存在功能差异?*a = *b
取消引用 ( ) 与使用&
运算符 ( )之间有什么区别*a = &x
”。
c - &p 和 p 有什么区别
如果我有一个指向整数的指针,例如:
然后打印地址
上一个和这个有什么区别:
c++ - 读取不同大小的字符串 // 字符串操作 C++
所以我刚开始学习 C++,我的教授简要介绍了地址 (&) 和取消引用 (*) 运算符。我不精通 C++,但我一直在寻找零件并使用常识来组合到这段代码中。它无法构建,所以请帮助!
作业 - 编写一个程序,不断读取不同大小的字符串。如果输入字符串的长度大于 1,则将其存储在向量中。当输入字符串的长度为 1(单个字符)时,您将输出存储在向量中的字符串,该字符串的第一个字母与输入字符匹配。在阅读字符串“quit”时继续这样做。
c - C 指向数组的指针;原始
我使用的 Visual Studio 2015 没有显示与我使用指针相关的编译器警告。如果我暂时提到一个指向char* p
数组的指针char name[] = "My Name"
,我没有任何指导说明以下内容并不完全相同;即导致指向数组第一个字符的指针
每个的结果printf
都是相同的值,因为我没有看到编译器警告,我需要指导哪种形式是正确的。
这与指向 int 的指针相同,因此我没有看到编译器警告,因此我假设以下内容是等效的
有人可以澄清这一点,或者帮助我在 Visual Studio 2015 中打开编译器警告,而无需切换到 TDM GCC + Eclipse Oxygen。
要点 - 语法具体并更正所有警告
c++ - 如果 std::addressof 是 & 的可读版本。*& 的可读版本是什么?
*&x
使用 c++11,我们可以写成
* std::addressof(x)
但是,这个表达式是否有更易读的版本?