首页 >后端开发 >C++ >如何确定 C 中作为指针传递的数组的大小?

如何确定 C 中作为指针传递的数组的大小?

Barbara Streisand
Barbara Streisand原创
2024-12-04 06:42:12999浏览

How Can I Determine the Size of an Array Passed as a Pointer in C  ?

用指针确定数组大小

在 C 语言中,数组衰减为指针,从指针检索数组的大小可能具有挑战性。

问题

查找作为指针传递的数组的大小需要额外的信息,因为指针本身不包含此数据。

解决方案

要解决此问题,有两种方法:

  1. 传递大小信息作为参数: 将数组的大小作为附加参数发送给函数。例如:

    func(int* array, size_t arraySize);
  2. 利用数组语法: 如果预先知道数组的大小,则将其作为固定大小的数组传递可以达到相同的效果效果:

    func(int array[5]);

说明

指针衰减规则允许数组表现得像指针,但这并不意味着它们本质上就是指针。当作为函数参数传递时,它们只是衰减为指针。

要从指针确定数组的大小,必须提供额外的大小信息。这可以通过显式传递大小作为参数或利用数组语法来实现,其中在声明中包含大小信息。

以上是如何确定 C 中作为指针传递的数组的大小?的详细内容。更多信息请关注PHP中文网其他相关文章!

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