C++学习分享(3)

今天主要讲解指针变量。

很多初学者看到指针就觉得不好理解,我感觉可能是分不清楚几个概念吧,主要有地址、取地址、取值、指针、指针变量。

首先是变量,能改变大小或内容的量;例如:

int a;//整型变量
a = 3;//a初始化为3
a = 5;//a赋值为5

在就是指针变量,指针变量也是变量,具备变量该有的特性,能改变值,只不过指针变量中存放的是地址。这由涉及到地址。

地址:程序执行中,变量和代码都是被加载到内存中的,计算机访问这些数据都是通过地址访问得到。还是打个比方吧,就以楼盘为例子,一栋楼就相当于一个内存块,房子就相当于一个小的变量,用来住人,放东西啥的。怎么知道房子里面是啥呢,首先知道这个人的房门号,如1203,那么1203就相当于是这个房子的地址。再假如这个房子里面住着张三,那么张三就是这个变量的值,应为是变量,所以这个房子可能被卖了,现在住李四,这就相当于变量的改变了。现在的问题是,如果这个房子里面不是住人的,而是里面放的另外一个房门号,那么这个房子就是一个指针变量,这个变量存的是一个地址,其中另外一个地址所代表的的变量里面存什么就就看这个变量的类型了,例如:

int* b =&a;//现在指针变量b的值是变量a的地址
cout<<b<<endl;//(0)
int c = 5;
b = &c;//现在指针变量b的值是变量c的地址
//说明b是一个变量,可以被改变
cout<<b<<endl;//(1)
*b = 6;//b仍然是变量c的地址,这项操作并没有该边b的值
//改变的是通过b中地址找到的变量的值,也就是c中的值变为6
//其中地址也是可以输出的
cout<<b<<endl;//(2) (1)和(2)的输出是一样的,和(0)不一样
a = *b;//变量a的值为6;

上面涉及的cout暂时不解释,可以简单理解为将b中内容打印出来,还涉及到几个符号和概念。

取地址:获得一个变量的地址,用&获得。注意:不是只有变量才有地址。

取值:具体叫什么我也不熟,我喜欢这么叫。表示去一个指针变量所指的变量的值,用*实现。通常在申明指针变量用到,在解析地址时也用到,通常我理解 int * 和int 都是基本类型,他们有关系,但是用来声明的对象不是同一种类型。

指针:就是地址。

指针变量:首先它是一个变量,其次变量存储的是指针。

希望能帮助大家理解。

我建了一个QQ群,主要学习C++,群号为926420695,感兴趣的小伙伴欢迎加入。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值