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

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

Susan Sarandon
发布: 2024-12-03 05:41:10
原创
282 人浏览过

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

在 C 中使用指针获取数组的大小

在数组上操作时,确定数组中元素的数量至关重要。然而,当在 C 中将数组用作指针时,此任务变得具有挑战性。

C 从 C 继承了“数组/指针等效性”。当作为函数参数传递时,数组可以衰减为指针,允许使用如下代码:

void func(int* ptr);

int array[5];
int* ptr = array; // equivalent to 'ptr = &array[0]'
func(array); // equivalent to 'func(&array[0]);'
登录后复制

在您的情况下,您传递的是指向数组元素的指针而不是数组本身。因此,指针本身并不包含大小信息。

要处理此问题,您应该显式地将大小作为附加参数传递:

static const size_t ArraySize = 5;
int array[ArraySize];
largest(array, ArraySize);
登录后复制

自定义函数以接受数组指针直接及其大小:

int largest(int* array, size_t size);
登录后复制

您还可以利用语法糖以固定的值定义数组size:

void func(int array[5]);
登录后复制

但是,这是数组指针声明的语法糖:

void func(int* array);
登录后复制

当你拥有数组本身而不仅仅是指针时,你可以获得数组的数量元素使用:

sizeof(array) / sizeof(array[0]);
登录后复制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板