美文网首页
C++原生指针,引用与智能指针

C++原生指针,引用与智能指针

作者: Hubhub | 来源:发表于2020-03-23 12:08 被阅读0次

Ref

原生指针

c++原生指针来源于c语言,常与取地址运算符&搭配使用,基本操作有修改指针指向,解引用操作。常用于获取动态内存分配得到的地址、减少数据拷贝操作(如函数传参)等。

int a=5,b=7;
int *p=&a;//取地址
*p=15; //解引用
p=&b;
*p=17;

引用

引用是c++有而c没有的语法,引用在语义上是等价于被引用对象,对引用的操作即是对被引用对象内存的操作。引用在底层是指针,但是在行为上与指针不同而与被引用对象相同。如下例:

int a=7,b=8;
int &ref=a;
ref=10;
int *pb=&b;
int vc[5]={0,1,2,3,4};
int *pc=vc;//指向vc[0]
int &rc=vc;//指向vc[0]
pc++;//pc指向下vc[1]
rc++;//rc仍指向vc[0],++操作修改的是被指对象的值。vc[0]变为1;

引用的独特之处在于,引用被定义后,不可更改所指(其行为与被引用对象相同,没有此操作)。

智能指针

智能指针是c++2.0的新特性之一,其最大的特点在于其结合了指针和对象构造析构的优点RAII,使得其在其生存期结束时可以及时释放其所管理的资源(动态内存分配得到的资源)。常用智能指针有unique_ptr<T>、shared_ptr<T>和weak_ptr<T>。

相关文章

  • C++原生指针,引用与智能指针

    Ref 原生指针 c++原生指针来源于c语言,常与取地址运算符&搭配使用,基本操作有修改指针指向,解引用操作。常用...

  • C++智能指针

    引用计数技术及智能指针的简单实现 基础对象类 辅助类 智能指针类 使用测试 参考: C++ 引用计数技术及智能指针...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • Rust for cpp devs - 智能指针

    与 cpp 类似,Rust 也有智能指针。Rust 中的智能指针与引用最大的不同是,智能指针 own 内存,而引用...

  • 指针和引用的辨析

    先来看两个图 指针与引用的区别 1.指针在C和C++中均有,而引用是C++独有的特性(*指针申明符号,&引用申明符...

  • java中的引用与c++中的指针的区别

    java中的引用与c++中的指针的区别 Java的引用和C++的指针都是指向一块内存地址的,通过引用或指针来完成对...

  • 指针和引用的区别

    参照lyd_253261362的专栏的文章详细介绍=====c++中的引用与指针的区别 c++中的引用与指针的区别...

  • C++知识点

    C++基本方法: C++ memcpy C++基本特性: C++引用(vs指针) C++指针 C++封装: 将...

  • C++中的引用和指针

    C++ 引用与指针的比较 引用是 C++ 中的概念,初学者容易把引用和指针混淆一起。 以下程序中,n 是m的一个引...

  • C++研发工程师笔试题/面试题(1-10)

    1. (1) 简述智能指针的原理;(2)c++中常用的智能指针有哪些?(3)实现一个简单的智能指针。 简述智能指针...

网友评论

      本文标题:C++原生指针,引用与智能指针

      本文链接:https://www.haomeiwen.com/subject/cbcdyhtx.html