问题标签 [const-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.
c++ - 用于指针算术的 void 指针的类型转换
为了使用指针算术,void 指针的类型被转换多次。
包含数据的向量来自外部源并返回一个 void 指针以访问其数据。此外,步幅也由外部对象给出,并注意对齐要求。为了使示例简短,它并没有完全反映这两个事实。
转换为uint8_t
不影响float
指针指向的 ( ) 数据,因为只转换了指针的类型?
为什么它会增加const
?countPointer
是否const
意味着指针指向的数据可能不会被更改?
为什么我必须使用reinterpret_cast<const float*>
而不是在循环内static_cast<const float*>
进行转换?countPointer
c - const 指针作为函数参数的含义
我有这个函数签名:
在这个特定的上下文中,const
关键字的意义是什么?
即使ptr
不是const
变量,我也无法修改它指向的地址,因为它是按值传递的,所以如果我有另一个这样的函数:
在它的实现内部做了这样的事情:
这不会影响传递的值(当然,在这个函数之外)。
所以问题是:使用myFunction()
签名而不是签名myAnotherFunction()
有什么意义?(除了你得到一个编译时错误)。
c++ - 当作为函数参数传递时,为什么我不能更改类型为“const int *”的指针的地址?
据我所知,const int *
暗示我可以更改指针但不能更改数据,int * const
说我不能更改指针地址但我可以更改数据,并const int * const
声明我不能更改其中任何一个。
但是,我无法更改使用 type 定义的指针的地址const int *
。这是我的示例代码:
代码输出:
我希望在调用至少一次之后,地址pInt
会更改为指向函数内部的内部变量。但事实并非如此。我一直指向变量。Func()
Func()
Dummy
这里发生了什么?为什么我没有得到我期望的结果?
(IDE:Visual Studio 2015 社区版)
c++ - 如何初始化 int *const *const?
我需要一个具有固定宽度和高度的二维数组,它只能更改存储在其中的各个值。它在标头中声明,然后在源文件中初始化。
我的发现让我尝试了以下片段;不幸的是,问题是关于一维数组或非常量数组的,与我的情况不符。
我的希望是在最后一个示例中,但是c
如果它们未初始化并且我无法初始化它们,因为它们是 const,我如何使用它们的“内部”数组?
我不需要这个数组的不同类型吗?我在考虑,int d[][]
但它没有恒定的宽度和高度。
在我看来,这就像一个悖论(如果它存在于 c++ 世界中),我是否遗漏了什么?
c++ - C++ const 指针奇怪的行为
奇怪的是这个输出:
* 对于查找功能:
0x9999999
0x1277777
some_string
* 对于测试代码
0x9999999
0x1277777
0000000000000000000000000000000000000000000 ....
在测试文件中,它给出了一个很长的零字符串,但地址是相同的。知道可能出了什么问题吗?
c++ - std::string& 类型的非常量引用的无效初始化 - 如何删除
我收到一个错误:
错误:从“std::basic_string”类型的右值对“std::string& {aka std::basic_string&}”类型的非常量引用无效初始化
代码是:
如何消除此错误?早些时候我尝试了以下代码,它仍然抛出相同的错误:
c++ - C++ 常量双指针
我想让一个常量双指针指向一个常量指针指向一个常量双精度。我开始从头开始制作它(当然我在书籍上做了一点搜索,然后我用谷歌搜索了它),并思考以下三个是什么:
我以为下一步是写一个常量双指针
然后我结合最后两个语句并写
其中 arr 是动态分配的二维数组。之后,我试图验证我所做的事情,并编写了以下语句,期望所有这些语句都会产生错误。
所以问题是我无法做出上面描述的内容,一个常量双指针指向一个常量指针,一个常量指针指向一个常量双。我怎样才能做到?
提前致谢。
c - 使用指向 FILE 类型的 const 指针是个好主意吗?
通常,C 文件 I/O 是使用FILE*
标准库函数完成的。
在 C 中,也可以有一个const 指针,其中指针的地址不能改变(但它指向的值可以)。
我想知道这是否可以应用于FILE*
,所以写了这个小程序来测试这个:
这编译得很好,并且使用 GCC 在 Ubuntu/Linux 16.04 上按预期工作(该文件包含我期望的字符串),但我不确定这个成语是否是一个好主意——该FILE
类型在设计和处理上是不透明的是特定于实现的。
因为不能保证任何 C 库实现都不会尝试更改FILE
指针的地址,所以在 C 中执行 I/O 时不使用这种方法是否更安全?
c++ - 为什么“具有 const 成员的结构”类型的指针不能指向“具有非 const 成员的结构”?
此代码无法编译:
然而,这个编译完美:
我知道在任何级别上更具 CV 限定的指针可以在任何级别指向更少 CV 限定的对象,但是为什么结构不一样呢?
上面的问题陈述是一个更复杂问题的 MCVE,我的朋友试图在t_s_t<T>
和之间转换指针t_s_t<const T>
,其中t_s_t
是带有一个模板参数的模板结构类型typename
,并且T
是任意类型。