📌  相关文章
📜  如何使指针指向数组中的最后一个值 - C++ (1)

📅  最后修改于: 2023-12-03 15:37:57.314000             🧑  作者: Mango

如何使指针指向数组中的最后一个值 - C++

在C++中,我们经常需要处理数组,有时候需要将指针指向数组中的最后一个值。这里提供一些方法来完成此任务。

方法一:使用数组大小来计算偏移量

我们可以使用数组的大小来计算指针需要偏移的量,然后将指针指向数组中的最后一个值。

int arr[] = {1, 2, 3, 4, 5};
int* ptr = arr + sizeof(arr) / sizeof(int) - 1;

首先,我们需要使用sizeof()运算符来计算数组的大小,然后除以int类型的大小,得到数组中元素的数量。接下来,我们将指针指向数组的最后一个元素,即arr + 数组元素数量 - 1。

方法二:使用std::end()函数

C++11引入了std::end()函数,它可以返回一个指向数组中最后一个元素之后的地址。这意味着,我们可以使用std::end()函数来获取指向数组中最后一个元素的指针。

int arr[] = {1, 2, 3, 4, 5};
int* ptr = std::end(arr) - 1;

我们将std::end()函数返回的指针减去1,就可以得到指向数组中最后一个元素的指针。

方法三:使用指针算术运算符

我们可以从数组的地址开始,按照偏移量递增指针,直到指向数组的最后一个元素。

int arr[] = {1, 2, 3, 4, 5};
int* ptr = arr;
ptr += sizeof(arr) / sizeof(int) - 1;

我们首先将指针指向数组的第一个元素arr,然后使用指针算术运算符+将指针递增至指向数组的最后一个元素。

总结

这里提供了三种方法来使指针指向数组中的最后一个元素。这些方法中,方法一和方法三使用了指针算术运算符,需要计算数组元素的数量。方法二使用了std::end()函数,可以自动确定数组的结束位置。选择哪种方法,取决于个人喜好和具体情况。