如何使用动态指针和智能指针更改变量的值
How do I change the value of a variable using a dynamic pointer and a smart pointer?
如何使用动态指针或智能指针更改变量的值?
int a=5;
int *b= new int(a);
*b=10;
cout<< a;
输出为5。我是否可以使用动态指针或智能指针更改"a"的值?
int *b = new int(a);
分配采用与CCD_ 2相同的值的新CCD_。要指向a
,只需使用
int *b = &a;
我不知道你为什么在这里提到智能指针,它们没有相关性。它们通常用于管理已分配内存的生存期,而您不应该这样做。
你不能通过猜测和实验来有效地学习C++。我建议你选一本好书。
不能使动态指针指向自动内存中分配的int
。如果您想使用动态指针,可以使用std::shared_ptr
,如下所示:
shared_ptr<int> a { new int(5) };
cout<< *a << endl;
shared_ptr<int> b { a };
*b = 10;
cout << *a << endl;
演示。
当然可以,但行int *b = new int(a);
采用了a
的值副本。
int* b = &a;
怎么了?
然后可以通过取消引用int
0来操作a
。
智能指针在这里对您没有帮助,因为它们涉及到管理用new
分配的东西的生存期您的指针指向一个具有自动存储持续时间的变量。
相关文章:
- 指针变量在 cout 函数中不起作用
- 如何将指针变量作为引用参数传递?
- 有没有办法在同名类 (c++) 中为对象分配一个指针变量
- 我试图了解在异或操作后指针变量正在更改
- 调用带有指针对象错误的指针变量
- 如何在 cuda 中将结构的指针变量从主机复制到设备
- 非指针变量和类成员上的新放置
- 线路抑制状态错误 C4703 可能未初始化的局部指针变量"back"已使用
- 全局外部指针变量在 DLL 中不可见
- 如何访问在 c++ 中在类内声明的结构类型指针变量?
- C++ 中指针变量的内存释放
- 使用指针变量打印特定的数组变量
- 如何使用构造函数初始化内存地址(指针变量)?
- 如何释放为指针变量本身提供的内存?
- 如果地址已知,如何获取指针变量的名称
- 如何处理参数中的基类和指针变量
- 指针变量 在数组中定位零
- 隐式指针变量,在自动定义中具有另一个指针变量
- 为什么可以将Char指针变量初始化为字符串,而INT指针变量不能初始化到整数数组
- 错误 C4703 可能未初始化的局部指针变量'y'使用