C++( get()方法、->、*)

在C++中,指针是一种强大的工具,用于处理内存和访问数据。以下是一些与指针相关的基本概念和操作符:

  1. 解引用运算符 *

    • 用于访问指针指向的内存地址处的值。

    • 例如,如果有一个指针 int* ptr,则 *ptr 将返回指针所指向地址的整数值。

      int x = 10;
      int* ptr = &x;
      std::cout << *ptr; // 输出 10
      
  2. 成员访问运算符 ->

    • 用于通过指针访问对象的成员,通常在指向对象的结构或类的指针上使用。

    • 等同于 (*ptr).member 的简化写法。

      struct MyStruct {
          int member;
      };
      
      MyStruct obj;
      MyStruct* ptr = &obj;
      ptr->member = 42;
      std::cout << ptr->member; // 输出 42
      
  3. get() 方法

    • 在C++中,指针没有内建的 get() 方法。通常,get() 是与智能指针相关的方法,而不是原始指针。

    • get() 用于获取智能指针底层的原始指针。

      #include <memory>
      
      int main() {
          std::shared_ptr<int> sptr = std::make_shared<int>(5);
          int* rawPtr = sptr.get(); // 获取底层的原始指针
          std::cout << *rawPtr;    // 输出 5
          return 0;
      }
      

    上述示例中,get() 方法用于从 shared_ptr 中获取底层的原始指针。

总体而言,指针是一种强大但需要小心使用的工具,特别是在涉及内存管理和指针算术时。在现代C++中,推荐使用智能指针(如 std::shared_ptrstd::unique_ptr)来管理资源,以减少内存泄漏和提高代码安全性。



posted @   做梦当财神  阅读(210)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2021-12-12 Python 访问闭包中的变量
2021-12-12 Python fromkeys()
点击右上角即可分享
微信分享提示