c++ 指针与引用(未完成)
1.指针的概念
与int,string等一样,指针也是一种变量,只不过它存储的数值是内存的地址。
指针包含5个要素:
1)指针名称
2)指针的类型
3)指针所指向的类型
4)指针所指向的内存区域
5)指针本身所占的内存区域
在一个指针中,需要准确区分出以上四个要素
指针操作符
1)引用操作符 &
2)指针标识符,也称作解除引用操作符 *
指针名称
指针名称为在指针声明语句中去掉系统关键字及符号后剩下部分,即我们自己命名的内容。
指针的类型
指针的类型带有指针的标识符*,我们只需要将指针声明语句里的指针名称去掉,剩下部分即为指针的类型。
指针所指向的类型
指针所指向的类型及指针变量所存储的内存地址的地址上的数据类型,在指针声明语句中,将指针名称与其左边的指针标识符*去掉,
即为指针所指向的类型,若指针名称左边存在多个指针标识符*,则只需去掉距离指针名称最相近的一个。
指针所指向的内存区域
指针所指向的内存区域为指针存储的值所代表的那块内存区域,指针存储的值为该内存区域开始位置,内存区域长度为指针所指向的
类型的大小(sizeof())。
指针本身所占的内存区域
指针存储地址所占用的内存,通常情况下,在32位的平台中,占据的内存字节为4。
运算符 & 和 *
&运算符称为引用运算符,也叫取地址运算符
* 运算符称为解除引用运算符,也叫指针声明符
&与*是一对相对的运算符
对于一个int类型的指针
int *p;
int c;
通过上述我们知道,p存放的是地址,&是取地址运算符,则我们可以说
p=&c;
意思是将c的地址赋值给p
而*运算符与&运算符正好相反,它的作用是将内存地址表示为变量,则我们可以说
*p=c;
一个是将变量变为地址形式,一个是将地址变为变量形式