(持续更新)c++指针
指针的基本概念和使用
指针的作用:可以通过指针间接访问内存
- 内存编号是从0开始记录的,一般用十六进制数字表示
- 可以利用指针变量保存地址
指针变量的定义和使用
指针变量的语法:数据类型 *变量名;
例如:
int a;
int *p;
p=&a; //指针p指向a的地址
也可以写做:
int *p=&a;
cout<<*p<<endl; //打印出a的值
其中,*p即解引用,即找到指针指向的内存中的数据
空指针和野指针
1.空指针
定义:指针变量指向内存中编号为0的空间
用途:初始化指针变量
注意:空指针指向的内存是不可以访问的,0~255之间的内存编号是系统占用的
int *p=NULL; //空指针用于给指针变量进行初始化
*p=100; //试图改变内存中的值,报错
2.野指针
定义:指针变量指向非法的内存空间
int *p=(int *)0x1100; //指针变量p指向内存编号为0x1100的空间
cout<<*p<<endl; //访问野指针报错
const修饰指针
1.const修饰指针
const int *p=&a;
图中:
*p=20; 错误,指针指向的值不可以改
p=&b; 正确,指针的指向可以改
(常量指针)
特点:指针的指向可以修改,但指针指向的值不可以修改
2.const修饰常量
int * const p=&a;
图中:
*p=20; 正确,指向的值可以改
p=&b; 错误,指针的指向不可以改
(指针常量)
特点:指针指向的值可以改,指针的指向不可以修改
3.const既修饰指针,又修饰常量
const int * const p=&a;
图中:
*p=20; 错误
p=&b; 错误
特点:指针的指向和指针指向的值都不可以修改