zoukankan      html  css  js  c++  java
  • 关于C++中指针和引用的理解

    指针

    众所周知,数据类型其实只对人有意义,数据在机器里存储,就是连续的0和1,机器本身不会区分所谓的数据类型。

    而编程语言里数据类型的意义,就是如何用0和1来表示不同的数据类型,以及如何把不同数据类型的运算转换成0和1的运算。

    所以对任何一种具有数据类型的变量来说,其本质就是变量长度加运算规则。

    而指针,其长度,由编译器和系统决定。

    至于运算规则,最难的无非就是指针的加减和取地址、访问指针。

    • 指针加减:指针的加减其实很容易理解,就是指针加减指针类型对应的数据类型的长度,比如int型指针就是指针加减int型的长度。
    • 取地址:准确的来说,叫做取指针,就是返回一个指针变量,这个指针变量的类型由被取的变量决定,比如整数型变量取指针,就是整数型指针,整数型指针变量取指针,就是整数型指针变量的指针
    • 访问指针:就是根据指针所指向的地址,返回一个变量,这个变量的类型和指针类型对应,如访问整数型指针变量返回的就是整数型变量,访问整数型指针的指针变量,返回的就是整数型变量指针

    引用

    引用类型是对已经定义的变量的引用,就相当于有两个变量指向同一个空间。

    ** 引用在第一次赋值之后与被引用变量几乎没有差别,所有运算规则相同,长度也一样,所以可以和原变量一样使用。 **

    引用的第一次赋值:

    • 引用第一次赋值需要引用类型和被引用类型一样。
    • 引用之后的赋值和被引用类型的赋值相同。

    所以,利用引用第一次赋值的特性,引用经常用来作为参数,在传递参数时,引用被第一次赋值,成功引用外部的变量,而在函数内部,引用和普通变量几乎没有差别,可以省去类似C中一系列复杂的指针操作。

    本文来自博客园,作者:Karma-Tiumo,转载请注明原文链接:https://www.cnblogs.com/tiumo/p/15227432.html

  • 相关阅读:
    Fast RCNN 训练自己数据集 (2修改数据读取接口)
    Caffe Python MemoryDataLayer Segmentation Fault
    Caffe 单独测试添加的layer
    Caffe源码解析7:Pooling_Layer
    Caffe源码解析6:Neuron_Layer
    Caffe源码解析5:Conv_Layer
    Caffe源码解析4: Data_layer
    Caffe源码解析3:Layer
    Caffe源码解析2:SycedMem
    Raft论文学习笔记
  • 原文地址:https://www.cnblogs.com/tiumo/p/15227432.html
Copyright © 2011-2022 走看看