指针
![](https://img-blog.csdnimg.cn/20190424100209987.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poY3p6MTk5NA==,size_16,color_FFFFFF,t_70)
- int* 是一种类型—指向 int 的指针。
int* p1,p2
注意,该语句创建一个指针 p1 和一个 int 变量 p2。对于每个指针变量名,都需要使用一个*
。- 在C++中创建指针时,计算机将分配用来存储地址的内存,但不会分配用来存储指针所指向的数据的内存。
- 一定要在对指针应用解除引用运算符(*)之前,将指针初始化为一个确定的、适当的地址。
- 指针加1,增加的量等于它指向的类型的所占字节数
空指针
C++98中,字面值0有两个含义:1.数字零;2.空指针
C++11引入新关键字 nullptr,来表示空指针
new 运算符
- 在运行阶段分配未命名的内存以存储值
- 在编译阶段给变量分配内存被称为静态联编(static binding);使用 new ,在运行阶段看需要分配内存,这是动态联编(dynamic binding)。
int * p = new int;
new int
告诉程序,需要适合存储 int 的内存。new 运算符根据类型来确定需要多少字节的内存。然后,它找到这样的内存,并返回其地址,将地址赋给 p ,p 是被声明为指向 int 的指针。- new 从堆