1、定义指针(基本的指针)
#include <iostream>
using namespace std;
int main() {
int a;
int *b = &a;//定义指针b,指向a。定义指针使用*,取地址符&
return 0;
}
b中存的是a的地址,使用b访问a的时候,使用解引用(*b) 等同于 a
要求指针的类型都要和它所指的对象严格匹配,有两种情况例外:const和(待更新,,)
2、指针的值
1)、指向一个对象
2)、指向紧邻对象所占空间的下一个位置
3)、空指针,没有指向任何对象
4)、无效指针,上述情况以外的指针
3、空指针
1)、c++11新标准是nullptr:int *a = nullptr;
字面值nullptr,可以被转换成任意的指针类型
2)、int *a = 0;或int *a = NULL;
预处理变量NULL,值为0。
4、判断和比较
空指针的值为0,其他的都不是0
两个指针存放了相同的地址,那么他们相同,否则不同
5、void*指针
可以存放任意对象的地址
不能用来操作指向的对象,因为不能确定对象的类型。
6、指针和引用的不同
最重要的指针是一个对象,引用不是,所以引用需要在定义是赋值,并且以后不会被改变,指针可以随时改变。