C++ 指针篇

2020-03-13  本文已影响0人  Jaymz_2b11

int a;
a 表示一个内存空间,这个空间用来存放int类型的数据

int *a;
a 表示一个内存空间,这个空间用来存放指针,这个指针指向一个存放int类型的数据的内存地址

int **a; //指针的指针
a 表示一个内存空间,这个空间用来存放指针,这个指针指向另一个指针,这个指针指向一个存放int类型的数据的内存地址

int (a)[10] 指向数组的指针 书写时一定要加小括号,因为[]的优先级高于
a 表示一个内存空间,这个空间存放了一个指针,这个指针指向长度为10,类型为int的数组

int (*a)(int) //函数指针
a 表示一个内存空间,这个内存空间中存放了一个指针,这个指针指向一个函数,这个函数返回值类型是 int 参数类型也是int

智能指针
C++11新特性
unique_ptr 不允许多个指针共享资源 也就是说我保存的这个指针,其他指针变量不能拷贝过去
可以使用标准库中的move函数转移指针,一旦转移,原来的指针就会失效
内存单元独享

shared_ptr 多个指针共享资源 可以指向同一个内存单元

weak_ptr 可以赋值shared_ptr里的指针,但其构造或者释放对资源不产生影响

上一篇 下一篇

猜你喜欢

热点阅读