指针与引用的个人理解----C++初学之路
来源:互联网 发布:mui.picker.min.js 编辑:程序博客网 时间:2024/05/29 07:28
ps:自己才刚刚开始学习C++,以下是自己的学习记录,切勿完全相信。
今日学习了主要是引用&与指针*
先说说引用,引用是一种绑定,可以说是一种别名,根据我自己的理解,就像,我妈叫我儿子,我叔叫我侄子,两个都是我。
那么我妈打了我一巴掌,是不是就是打了我叔的侄子。
int i1=100;
int &i2=i1;这样就是i2是一种int型引用,绑定了i1,两者都是一样的
i2=10;ok,这样i1也变成了10.
不过,引用是别名,不是一种对象。不能拷贝。
另外,既然引用它是一个绑定,那么假如这个世界上没有我,那么侄子和儿子这个称谓出现的话就是非法,不合常理的,就像我现在,我叫我舍友叫做儿子,是不行的,会被打的。
所以,引用必须初始化一个对象,而不是初始化一个值,可以这么比喻,对象是我,我叫MTFJohn,那么这个值就是MTFJohn,那么我妈的儿子是我这个人,而不是这个叫MTFJohn,
因为MTFJohn这个名字别人也会用,你必须绑定的是我这个人。
所以int &i=250;这样是不正确的。
指针,它是一个对象,对象在C++中称作是一个物体(这是在之前某个博客里看到的),那么是对象,可以不需要初始化,但是又建议初始化。为什么?还是那个比喻,对象是我,我可以不需要名字,我就是我,我存在,即是我,但是你不给自己取个名字,那么别人就很难来叫你做事,喂,那个胖子!
当然我可以叫很多名字,但是要有正确的名字,也就是指针初始化要正确。
指针可以有四种状态,指向一个对象,指向一个位置,空指针,无效指针。
指向一个对象,就是给我自己取个名字嘛。
指向一个位置,也是一个名字嘛。
空指针,就是没有名字嘛。
无效指针,可以说你取了个自己都不知道怎么叫的名字。
指针最好初始化,因为,不初始化,就是一个无效指针,你不懂它会指向哪里,在编译器中出现这种错误,很麻烦,作为初学者,我从书中一大堆文字看来,就是麻烦。
因为它可能指向一个地址,恰好里面有个数据,就像我写了一大堆代码,诶?怎么结果有问题,可是又不报错,那么这个错误很难找出。
感觉说了很多废话,反正自己也喜欢经常回头看看自己的废话,总能找出很多错误。
现在说说我学到的关于指针和引用两者的符号问题。
*与&,从书本上给我的感觉就是,这两个符号是不是有四种应用。
int i=250;
int *p=&i; 指针和取地址
int &y=i; 引用
*p=350; 解指针
int i2=250;
p=&i2;取地址
我不知道自己是不是对的,因为现在全是我脑中自认为的理解。
总结就是:*这个符号,取地址里的值
&这个符号,取这个对象的地址
那么这样理解,嵌套问题我感觉就很好理解了
int a=250;
int *p=&a;p是一个指针指向取的a这个变量的地址。
int **p2=&p;两个*,那就是指向指针的指针。
既然两个*是指向指针的指针
那么*&这个就是指向指针的引用。
int i=250;
int *p=nullptr;
int *&r=p;
r=&i;这里取i的地址,给r,引用是绑定,那么就是给指针p,那么指针就指向i的地址
*r=0;*是取值,那么就是把这个p指针指向的东西的值改成0
最后i=0.
- 指针与引用的个人理解----C++初学之路
- 引用和指针的区别个人理解
- 关于C的指针,Java/Python的引用,形参与实参个人理解
- C语言引用&的个人理解
- 个人对c语言指针的理解
- C与C++之引用与指针
- 个人关于java与指针的理解
- C/C++ 之指针与引用的区别
- 【每日一C之十二】指针与引用的区别
- 关于指针的引用与指针的指针的理解
- c语言初学-引用和指针的异同点
- 引用与指针的一点理解
- c,c++易错点之指针与引用
- 【C/C++】指针与引用的区别
- 常量指针与指针常量的一些个人理解
- 关于c语言二维数组与指针的个人理解及处理办法。
- 【c++】指针与引用
- 【C++】指针与引用
- hadoop.2.8.1-搭建笔记
- mongodb中的aggregation的使用
- python基础--with-as
- Android学习之OkHttp(浅学)
- C# BinaryWriter/BinaryReader、FileStream 、StreamWriter/StreamReader
- 指针与引用的个人理解----C++初学之路
- Android Matrix的用法总结
- 将windows下的txt格式转化为linux下的文件格式
- Oracle数据库统计信息收集:dbms_stats包的使用说明书
- ECSHOP二次开发教程__连接
- QML之CheckBox与ComboBox
- 《C++ Primer》读书笔记第六章-3-特殊特性 And 函数匹配 And 函数指针
- ssm框架-缓存浅谈
- Android Matrix的代码验证和应用