博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[c++]指针的个人理解
阅读量:7043 次
发布时间:2019-06-28

本文共 877 字,大约阅读时间需要 2 分钟。

本质:指针是一种变量类型,和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;

转载于:https://www.cnblogs.com/Faiz-room/p/6387188.html

你可能感兴趣的文章
element el-input directive数字
查看>>
package-lock.json和yarn.lock的包依赖区别
查看>>
小程序入口构造工具&二维码测试工具
查看>>
SpringBoot+websocket+定时任务(如何及时实时响应服务端数据)
查看>>
PHP回顾之协程
查看>>
Do you want to be a Python expert ? 前言
查看>>
SQLServer之创建辅助XML索引
查看>>
实现element-ui的按需引入,按需打包加载
查看>>
剥开比原看代码09:通过dashboard创建密钥时,前端的数据是如何传到后端的?
查看>>
180710-MySql插入唯一键冲突的三种可选方式
查看>>
数据库两个神器【索引和锁】
查看>>
金9银10,分享几个重要的Android面试题
查看>>
Spring Boot 2.0.2 参考指南(通用的应用程序属性 ②)中文文档
查看>>
sysbench基准测试
查看>>
决策树
查看>>
Spring Cloud Config采用数据库存储配置内容
查看>>
刨根问底ajax原理与封装
查看>>
关于部署CI/CD的5点建议
查看>>
每天学点Python Cookbook(五)
查看>>
antd-pro添加新页面和新功能
查看>>