pointers相关内容

C ++中带有const的指针和与号位置

可能重复: 声明指针;类型和名称之间的空格是在左边还是右边的星号? 我一直想知道放置 * 和 & 的确切位置是什么.似乎 C++ 对放置这些标记的位置非常宽容.例如,我似乎将指针和 & 号放在关键字的左右两侧或两个关键字的中间,但令人困惑的是,有时它们似乎意味着相同的东西,尤其是与 const void f1(structure_type const& 参数)void f2(结构类型常量 ..
发布时间:2022-01-23 23:56:17 C/C++开发

C++标准:向量

我必须继续一个程序.我之前的程序员使用的结构很多: std:vectorT* 常数> 他在 Visual Studio C++ 2010 中编写了 ist 并且能够编译它.我正在使用 g++,它会引发一些编译错误. g++ -g -Wall -c -std=c++11 -pedantic -I/usr/include/SuperLU/src/Cell.cpp -o obj/Cell.o在 ..
发布时间:2022-01-23 23:49:26 C/C++开发

C++ 常量指针声明

我正在查看一些代码,但遇到了一些我不熟悉的代码.经过一番搜索,我想不出任何例子来说明为什么这样做或这个声明的好处. myClass const * const myPtr = myClass->getPointer(); 这是一个 const 指针的声明还是完全不同的东西? 解决方案 表示“myPtr is a const pointer to a const 我的类".这意味着你既不 ..
发布时间:2022-01-23 23:43:40 C/C++开发

C++ 中 const 声明的区别

有什么区别 void func(const Class *myClass) 和 void func(Class *const myClass) 另见: C++ 常量问题 有多少和哪些用途“常量"的在 C++ 中? 可能还有其他人...... 解决方案 区别在于 void func(const Class *myClass) 你指向一个你不能改变的类,因为它是常量. ..
发布时间:2022-01-23 23:40:54 C/C++开发

strchr 实现是如何工作的

我尝试编写自己的 strchr() 方法实现. 现在看起来像这样: char *mystrchr(const char *s, int c) {而 (*s != (char) c) {如果 (!*s++) {返回空值;}}返回 (char *)s;} 最后一行原来是 return s; 但这不起作用,因为 s 是 const.我发现需要这个演员表(char *),但老实说我不知道​​ ..
发布时间:2022-01-23 23:39:18 其他开发

const char* 和 char const* - 它们是一样的吗?

据我了解,const 修饰符应该从右到左阅读.从那,我明白了: const char* 是一个指针,它的char元素不能修改,但指针本身可以,并且 char const* 是一个指向 mutable 字符的常量指针. 但我收到以下代码的以下错误: const char* x = new char[20];x = 新字符[30];//这如预期的那样有效x[0] = 'a';//按预期 ..
发布时间:2022-01-23 23:36:02 C/C++开发

在go中找到常量的地址

我们编写了一个程序,通过它我们试图找到一个常量的地址.可以这样吗? 主包功能主要(){常数 k = 5地址 := &k} 它给出了一个错误,谁能告诉我们如何找到一个常量的地址? 解决方案 简而言之:你不能. 错误信息说: 不能取k的地址 地址运算符&的操作数有限制.规范:地址操作符: 对于T类型的操作数x,地址操作&x生成*T 到 x.操作数必须是可寻址,即变量 ..
发布时间:2022-01-23 23:31:14 其他开发

将常量传播到成员变量指向的数据

对于 C++ 新手来说,const 成员函数被允许在类引用的对象上调用非 const 方法(通过指针或引用)通常很困惑.例如,以下是完全正确的: class SomeClass{类 SomeClassImpl;SomeClassImpl * impl_;//PImpl 成语上市:无效 const_method() 常量;};结构 SomeClass::SomeClassImpl{void non ..
发布时间:2022-01-23 23:30:45 C/C++开发

const 指针分配给一个指针

为什么我不能这样做: char* p = new char[10];无效 SetString(char * const str){p = str;}SetString("你好"); 我有一个指向 char 的 const 指针,为什么我不能将 const 指针分配给另一个指针? 这似乎不合逻辑,因为通过将其分配给另一个指针,您实际上并没有违反 char 指针的 const-ness.还是 ..
发布时间:2022-01-23 23:30:01 C/C++开发

为什么我可以更改 const char* 变量的值?

为什么下面的 C 代码可以工作? const char* str = NULL;str = "测试";str = "test2"; 既然 str 是一个指向常量字符的指针,为什么我们可以给它分配不同的字符串字面量呢?此外,我们如何保护 str 不被修改?例如,如果我们稍后将 str 分配给一个更长的字符串,该字符串最终会覆盖另一部分内存,这似乎是一个问题. 我应该在我的测试中补充一点,我 ..
发布时间:2022-01-23 23:29:21 其他开发

常量变量用 C 中的指针改变

变量 i 被声明为 const 但我仍然可以使用指向它的内存位置的指针来更改值.怎么可能? int main(){常量 int i = 11;int *ip = &i;*ip=100;printf("%d\n",*ip);printf("%d\n",i);} 当我编译时,我得到这个警告: test.c:在函数“main"中:test.c:11:警告:初始化从指针目标类型中丢弃限定符 输出是 ..
发布时间:2022-01-23 23:24:42 C/C++开发

const 指针的 C++ typedef 解释

首先,示例代码: 案例一: typedef char* 字符;typedef CHARS 常量 CPTR;//指向字符的常量指针 文字替换 CHARS 变为: typedef char* 常量 CPTR;//仍然是一个指向字符的常量指针 案例 2: typedef char* 字符;typedef 常量字符 CPTR;//指向字符的常量指针 文字替换 CHARS 变为: typ ..
发布时间:2022-01-23 23:16:01 C/C++开发

在 C & 中指向带有 const 限定符的数组的指针C++

考虑以下程序: int main(){整数数组[9];常量 int (*p2)[9] = &array;} 它在 C++ 中编译良好(参见现场演示 这里)但在 C 中编译失败.默认情况下,GCC 提供以下警告.(查看现场演示这里). prog.c:在函数'main'中:prog.c:4:26:警告:从不兼容的指针类型初始化 [默认启用]常量 int (*p2)[9] = &array; 但 ..
发布时间:2022-01-23 23:14:23 C/C++开发

char* 和 const char* 的区别?

有什么区别 char* 名称 指向一个常量字符串字面量,而 const char* 名称 解决方案 char* 是一个 mutable 指针,指向一个 mutable 字符/字符串. const char* 是一个 mutable 指针,指向一个 immutable 字符/字符串.您不能更改此指针指向的位置的内容.此外,当您尝试这样做时,编译器需要提供错误消息.出于同样的原因,不推 ..
发布时间:2022-01-23 23:10:17 其他开发

const-correctness 是否给编译器更多的优化空间?

我知道它提高了可读性并减少了程序出错的可能性,但是它对性能的提高有多大? 顺便说一句,引用和 const 指针之间的主要区别是什么?我会假设它们以不同的方式存储在内存中,但如何呢? 解决方案 [编辑:好的,所以这个问题比我一开始想的要微妙.] 声明指向 const 的指针或引用的 const 永远不会帮助任何编译器优化任何东西.(尽管请参阅此答案底部的更新.) const ..
发布时间:2022-01-23 23:08:10 C/C++开发