指针
在讲解链表之前,我们先要对指针有一定的了解,C++中的指针就像是一个地址的引用,它帮助你访问和操作存储在计算机内存中的数据。
理解起来是不是有点抽象,这里可以先把它理解为一个指示牌,这张指示牌上写着某个地方的地址。这个地址指向计算机内存中的一个特定位置,那里存储了一些数据。
想要声明指针,需要使用*
符合,比如下面的代码。
int *ptr; // 声明一个指向整数的指针
// 也可以这样写
int* ptr;
指针想要存放某个变量的地址,需要先使用取地址符&
获取地址
int x = 10;
int *ptr = &x; // 将指针初始化为变量x的地址
想要获取这个地址值,需要使用*
符号来访问, 这个过程称为解引用
int value = *ptr; // 获取ptr指针指向的值(等于x的值,即10)
指针和数组之间有密切的关系,数组名本质上是一个指向数组第一个元素的指针。
int arr[3] = {1, 2, 3};
int *ptr = arr; // 数组名arr就是指向arr[0]的指针
指针还可以执行加法、减法等算术操作,以访问内存中的不同位置。
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 指向数组的第一个元素
int value = *(ptr + 2); // 获取数组的第三个元素(值为3)
除此之外,还有一个特殊的空指针值,通常表示为nullptr
,用于表示指针不指向任何有效的内存地址。
int *ptr = nullptr; // 初始化为空指针