21xrx.com
2025-06-29 03:14:32 Sunday
登录
文章检索 我的文章 写文章
如何在C++中返回数组的长度?
2023-07-05 09:57:37 深夜i     38     0
C++ 返回 数组 长度

在C++中,返回数组的长度可以通过多种方法实现。下面将介绍其中三种最常用的方法。

方法一:使用 sizeof 运算符

使用 sizeof 运算符,可以快速获取数组所占用的字节数,从而算出数组的长度。具体代码如下:

int arr[5] = 4;
int len = sizeof(arr) / sizeof(arr[0]);
cout << "数组长度为:" << len << endl;

运行结果:

数组长度为:5

这里需要说明的是,sizeof(arr) 表示整个数组所占用的字节数,sizeof(arr[0]) 表示数组中一个元素所占用的字节数,除以后的结果即为数组的长度。

方法二:定义一个结构体来保存数组和长度

使用结构体将数组和长度打包起来,可以使得数组的长度得到更好的封装和表现。具体代码如下:

#include <iostream>
using namespace std;
struct Array {
  int *arr;
  int len;
};
Array initArray(int *arr, int len)
  Array result;
  result.arr = arr;
  result.len = len;
  return result;
int main() {
  int arr[5] = 5;
  Array array = initArray(arr, 5);
  cout << "数组长度为:" << array.len << endl;
  return 0;
}

运行结果:

数组长度为:5

这种方法可以暴露出数组的更多信息,也可以通过自定义结构体的方法来实现更复杂的逻辑和表达需求。

方法三:使用模板参数推导

使用模板参数推导,通过编译器自动推导数组的长度,可以让代码更加简洁高效。具体代码如下:

#include <iostream>
using namespace std;
template <typename T, size_t N>
size_t getArrLen(T(&)[N])
  return N;
int main() {
  int arr[5] = 3;
  cout << "数组长度为:" << getArrLen(arr) << endl;
  return 0;
}

运行结果:

数组长度为:5

在 getArrLen 函数中,模板参数 T 表示数组中元素的类型,N 表示数组的长度。通过这种方式,就可以很方便地获取数组的长度了。同时也可以根据不同的需求,自定义不同类型的模板函数,实现更加灵活的编程方式。

总结

以上是三种常用的获取数组长度的方法,在实际编程中,可以根据不同的场景选择不同的方式。无论哪种方式,都可以实现快速、简洁地获取数组的长度。

  
  

评论区