“指向”存储在内存中的另一个值的数据类型。指针变量包含某个其他实体(变量或函数或其他实体)的内存地址。此标记应用于涉及指针使用的问题,而不是引用。使用指针的最常见编程语言是C,C ++,Go和汇编语言。使用特定语言标记。其他有用的标签是描述指针使用的方法,函数,结构等。
尝试运行程序时出现分段错误(核心转储)。只是一些简单的指针操作,但我无法弄清楚问题所在。 int get_address_value(int* ptr) { 返回*pt...
为什么c++语法是&address=variable而不是&address=&variable?
我最近开始学习c++中的指针和引用,并且很难理解为什么引用的语法是&address =variable而不是&address=&va...
将 const char* 复制到 char 数组是如何工作的
我有一个代码,其中有一个缓冲区,我试图将 const 字符串复制到其中,如下所示: #包括 typedef 结构_BIGWORD { unsigned char Byte[53];//常量字符串的大小 }
我有一个这样的程序-> 消息操作{ } 消息人{动作action = 1; } 我希望将 Person 中的操作字段转换为 golang 中的非指针结构。但是之后 编译它
当我将它与空的 char 变量一起返回时,为什么它现在返回“ä”? 这是我正在编写的代码。 #包括 int main(){ //声明和定义...
为什么空 char 类型指针返回“â”作为输出?而且,当我将它与空 char 变量一起返回时,为什么它现在返回“ä”?
这是我正在编写的代码。 #包括 int main(){ //声明并定义一个char数组,并将指针添加为其元素 /*一个存储有
如何将 char** 传递给需要 const char 指针的 const 数组的函数
如下所示,我想将 char** x 定义的变量以只读方式传递给函数。 一本参考书显示了线性搜索源代码,该代码对 char 定义的变量执行线性搜索...
如何将 char** 传递给需要 const char 指针数组的函数
如下所示,我想将 char** x 定义的变量以只读方式传递给函数。 一本参考书显示了线性搜索源代码,该代码对 char 定义的变量执行线性搜索...
C 语言,想要将 char **x 变量作为只读(const)传递给函数
如上所述,我想将 char **x 定义的变量传递给只读函数(照常为 const),并将其作为临时参数接收。 一本参考书展示了线性搜索源c...
我可以使用不带alignof的指针算术在结构体中相同类型的连续字段序列之间移动吗?
我知道还有其他类似的问题。我已阅读这些内容,但认为这个问题尚未得到解答。 我可以在连续的(声明序列中连续的)之间移动吗
根据我的理解,堆栈分配的变量在超出范围时会被丢弃。然而,返回对在堆栈上分配的变量的引用的概念和
前言:我知道很难找到这样的用例。这个问题纯粹是理论上的,是出于好奇而提出的。 采取以下措施: char b[SOME_SIZE]; 这是: ((char *)5) + ((
我想在 C 中实现一个简单的函数,用另一个字符串替换一个字符串,但我不确定为什么会出现以下错误。我是指针新手 错误说 进程完成并退出...
问题是添加两个用户定义的多项式数据类型。我的代码如下。我尝试编写一个代码,通过使用 malloc 创建动态数组,仅占用必要的内存。 请...
有人可以告诉我 Class Point 和 Class Dog 这两个代码有什么区别吗?类dog编译没有任何错误。如果堆栈中的点对象...
将 boost intrusive_ptr 与不同 const-ness 进行比较
我想将 boost::intrusive_ptr 实例与基础类型的不同 const 性进行比较,但不幸的是,如果您取消注释该行,它就无法从框中工作: #包括 我想将 boost::intrusive_ptr 实例与基础类型的不同常量进行比较,但不幸的是,如果您取消注释该行,则它不起作用: #include <boost/intrusive_ptr.hpp> #include <memory> struct S {}; void intrusive_ptr_release(const S*){} int main() { boost::intrusive_ptr<const S> boost_const_ptr; boost::intrusive_ptr<S> boost_ptr; // if(boost_const_ptr < boost_ptr) {} // <------ here const S* s_const_ptr; S* s_ptr; if(s_const_ptr < s_ptr) {} std::unique_ptr<const S> u_const_ptr; std::unique_ptr<S> u_ptr; if(u_const_ptr < u_ptr) {} } 错误将是: no match for 'operator<' (operand types are 'boost::intrusive_ptr<const S>' and 'boost::intrusive_ptr<S>') 我可以比较原始指针,甚至可以比较 std::unique_ptr,但不能比较 boost::intrusive_ptr。这是有原因的,还是只是疏忽? 一个可能的原因是,与 shared_ptr < would be impossible in general. Other smart pointer types don't have to deal with the possibility of heterogenous comparison1 具有相同的语义,但 shared_ptr、weak_ptr 和 intrusive_ptr 可以。 template<class T, class U> bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b) noexcept; 退货: 未指定的值使得 operator< 是严格的弱排序,如 C++ 标准的 [lib.alg.sorting] 部分所述; 在operator<、!(a < b) && !(b < a)定义的等价关系下,两个shared_ptr实例是等价的当且仅当它们 共有所有权或两者都是空的。 shared_ptr 可以通过比较引用计数的地址来做到这一点。 intrusive_ptr 不能这样做,因为它没有对引用计数的指针访问。 例如当您将 shared_ptr<Base> 与 shared_ptr<Derived> 进行比较时,它们可能共享同一对象的所有权,这对于 unique_ptr<Base> 和 unique_ptr<Derived> 来说是不可能的。
我在 C 中有一个数据结构,在定义中,有一系列不同类型的指针,如下所示: typedef 结构 data_t{ 类型_0 *数据_0; ... 类型_n *数据_n; }; 现在,假设我声明一个指针...
我正在实现我自己的 smart_pointer,它计算对其所指向事物的引用。这是到目前为止我的实现: #pragma 一次 #包括 模板 ...
我不明白为什么当我用 *p1 初始化指针时没有遇到错误,其中 p1 是双指针
该程序没有特定功能;我目前正在研究列表,我很难理解为什么在 Node*curr=*root; 行中没有得到编译错误。我是不是应该开始...