一,空指针
在写代码的时候,我们使用NULL代表空指针,在内存中,将编号为0的位置表示空指针;空指针可以被指向,但是不能使用;下面这段代码无法打印指针变量p指向的地址的内容。原因是,0~255的地址是属于系统的。
int main() {
int* p = NULL;
*p = 2;
cout << *p << endl;
}
空指针的作用是:初始化指针变量。
二、const修饰指针
这里简单介绍三种:常量指针,指针常量和const修饰指针变量和内容。
int a = 10;
//常量指针,指针可以以改,但是指向的地址里的值不可以修改
const int* p1 = &a;
//指针常量,可以修改指向的地址的值,但是不能修改指针变量的值
int* const p2 = &a;
*p2 = 11;
//指针变量不可以修改,指针指向的值也不可以修改
const int* const p3 = &a;
//打印1111
cout << *p1 <<*p2<< endl;
三、指针操作数组
下面这段代码,是利用指针操作数组遍历整个数组
int a[5] = { 10,2,3,6,5};
int *p = a;
for (int i = 0; i < 5; i++) {
cout << *p <<endl;
p++;
}