C++,指针,指针指向指针,智能指针,具体用法,并用代码举例说明
时间: 2023-11-23 13:50:44 浏览: 35
指针是C语言中的一个重要概念,它用于存储变量的内存地址。指针指向的是内存中的某个地址,可以通过指针来访问或修改该地址上的数据。
指针指向指针,也称为二级指针,它是一个指向指针变量的指针。通过二级指针,我们可以修改一级指针所指向的地址或值。
智能指针是一种C++语言中的特殊指针,它提供了自动管理内存分配和释放的功能。智能指针会在合适的时机自动释放所指向的内存,避免了手动管理内存的繁琐和出错的可能性。
下面是一个使用普通指针和二级指针的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
// 普通指针
int num = 5;
int* ptr = #
printf("普通指针: \n");
printf("num 的值: %d\n", num);
printf("ptr 的值: %p\n", ptr);
printf("ptr 所指向的值: %d\n\n", *ptr);
// 二级指针
int** ptr2 = &ptr;
printf("二级指针: \n");
printf("ptr2 的值: %p\n", ptr2);
printf("ptr2 所指向的一级指针的值: %p\n", *ptr2);
printf("ptr2 所指向的一级指针所指向的值: %d\n", **ptr2);
return 0;
}
```
输出结果为:
```
普通指针:
num 的值: 5
ptr 的值: 0x7ffee6f14504
ptr 所指向的值: 5
二级指针:
ptr2 的值: 0x7ffee6f14500
ptr2 所指向的一级指针的值: 0x7ffee6f14504
ptr2 所指向的一级指针所指向的值: 5
```