- 指针的概念
计算机将内存进行存储时,需要被分割。而指针就好比是内存被分割的每一部分的编号。
- 指针变量的定义
数据类型* 指针名
如:
需要注意的是:&后保存的地址值类型必须是与前面指针类型相同。例如上图的a为整型,b为短整型,c为浮点型。
指针运算符(*)的理解:与&为逆运算,通过操作对象的地址来获取需要存储的内容。例如:int* p=&a *p是通过a的地址来获取a里的内容。
详细分类:类型* --> 定义指针变量
*变量名 --> 解引用(间接访问符:通过指针来找到对应的内存数据,我们可以通过解引用访问或修改指针指向的内存内容。)
- 指针与数组的关系
引用数组元素可以使用指针,即通过某一元素的指针变量来引用数组元素。
int* p=arr --> 代表arr首元素的地址
*arr <=> arr[0]
*(arr+1) <=> arr[1] --> +或者-几 都代表的是移动相应数字的单元格
- 指针与const的结合
const是常量。例:const int a --> a的值不能再改变
1、const int* p = &a
该情况const在前,说明不能改变的是地址指向的变量的值,但是可以改变地址针对的变量名。
例:
改变*p所对的a变量的值从10到100,编译就会出错。P = &b改变地址指向从a变成b就是对的。
2、int* const p = &a
该情况,const在后,修饰的是p,说明不能改变的是地址a,可以改变a的值。
例:
3、
一旦变量被修饰const为常变量,就不能使用指针进行改变。如:int* p = &a --> 表示*p可以通过a的地址来获取a的内容。如果要用指针,需要判断a的类型:如果是普通变量,就用int* p=&a;如果是常量,则需要在int* p=&a前加上const.
4、const int* const p = &a
表示指针既不能指向其他变量,也不能改变变量的值。即p只能指向a且a不能改变值。



