zoukankan      html  css  js  c++  java
  • [c++]指针的个人理解

    本质:指针是一种变量类型,和int,double一样里面存放值,不过指针存放的是内存地址。

    --》内存中的每一个字节都有一个地址,而且是唯一的。

      就跟街道的房子一样,每一栋房子都有唯一的门牌号。

    --》一个变量由多个字节组成,而变量的地址就是该变量内存中第一个字节的地址。

    eg:int a;

      a的字节占用地址分别是90,91,92,93;//int类型包含4个字节

      因此,a的内存地址为90;

    --》指针变量声明

    eg:dataType*  pVarName;//变量类型* 指针变量名;

      eg:int* pCount;//对应int类型的指针变量

        char* pChar;

      (1)三种等价声明方法:

      int* p;

    == int *p;

    == int * p;

      (2)声明多个指针最好分开声明;

      int* p1,p2;

    ==int* p1;int p2;

      方案:分开声明

      int* p1;

      int* p2;

    --》变量地址赋予指针,采用地址运算符&,可以返回变量的地址

    eg:int count;

      (1)int* pCount;//声明后赋值

      pCount = &count;

      (2)int * pCount = &count;//声明时赋值

    --》变量的间接引用

           int b = *pCount;//这里的*是解引用运算符

    --》注意1:不能把指针变量赋予非指针变量

    --》注意2:不能解引用一个未初始化的指针,这样会出现致命错误。

      可以将指针初始化时赋值0(C++中为NULL),这是一个特殊的指针值,表示指针未指向任何变量。

    案例深入理解pX=pY和*pX=*pY

    X=5,Y=6

    pX和pY是分别是指向X和Y的两个指针变量

    pX=pY,则将pY的值(变量Y的地址)赋予pX,这pX存有Y的地址,即pX指向Y;

    *pX=*pY,属于间接引用变量,即等同于X=Y,即X=6;

  • 相关阅读:
    MEF 根据配置注入Service
    .Net创建windows服务入门
    MySQL中MAX函数与Group By一起使用的注意事项(转)
    .net core 跨平台实践
    python中的迭代器和生成器
    python抓取链家房源信息(二)
    scrapy抓取小说
    python的scrapy框架
    总结
    python抓取链家房源信息
  • 原文地址:https://www.cnblogs.com/Faiz-room/p/6387188.html
Copyright © 2011-2022 走看看