首页 >后端开发 >C++ >使用指针时如何获取 C 中数组的大小?

使用指针时如何获取 C 中数组的大小?

Patricia Arquette
Patricia Arquette原创
2025-01-05 08:51:41277浏览

How Can I Get the Size of an Array in C   When Using Pointers?

从 C 中的指针获取数组的大小

在 C 中使用数组时,一项常见任务是确定数组的大小或数量数组中的元素。但是,通过指针访问数组时,这可能会很棘手。

从指针确定数组大小的问题

考虑以下函数头:

int largest(int *list, int highest_index);

此函数旨在返回整数数组中的最大整数。当尝试使用指针确定“列表”数组中的元素数量时,就会出现问题。

不正确的方法

已尝试的一些不正确的方法包括:

int i = sizeof list/sizeof(int); //returns incorrect value
int i = list.size(); // does not compile

这些方法要么返回不正确的值,要么无法编译,因为它们假设数组本质上是已知的指针。

正确方法:将数组大小作为参数传递

正确的方法是将数组大小作为附加参数传递给函数。这允许函数确定数组中的元素数量。

例如:

static const size_t ArraySize = 5;
int array[ArraySize];
func(array, ArraySize);

在此示例中,函数 'func' 将数组指针和数组大小设为参数。

基本原理

C 允许数组衰减为指针当作为函数参数传递时。但是,指针本身不包含有关数组大小的信息。通过将数组大小作为参数传递,该函数能够正确确定数组中的元素数量。

结论

通过指针处理数组时,必须考虑的是,指针不具有有关数组大小的固有信息。解决方案是将数组大小作为附加参数传递给需要此信息的函数。

以上是使用指针时如何获取 C 中数组的大小?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn