21xrx.com
2025-04-28 11:36:56 Monday
文章检索 我的文章 写文章
C++ 数组如何求长度?
2023-07-09 11:50:31 深夜i     --     --
C++ 数组 长度 求解

在C++中,数组是一种用于存储相同类型数据的容器。在使用数组时,有时需要求出数组的长度。那么,C++中的数组如何求长度呢?

在C++中,可以通过sizeof运算符来求出数组的长度,即所占的字节数。例如:

int arr[5] = 4;
int len = sizeof(arr) / sizeof(arr[0]);

上述代码定义了一个长度为5的int类型数组,并且通过sizeof运算符求出了它的长度。其中,sizeof(arr)表示整个数组所占的字节数,sizeof(arr[0])表示数组中每个元素所占的字节数。因此,将整个数组所占的字节数除以每个元素所占的字节数,就得到了数组的长度。在上述代码中,len的值为5。

需要注意的是,如果数组作为函数的参数传递时,其长度信息会丢失,此时sizeof(arr)会返回指针的大小,而不是数组的大小。例如:

void func(int arr[])
{
  int len = sizeof(arr) / sizeof(arr[0]);
}
int main()
{
  int arr[] = 4;
  func(arr);
  return 0;
}

在上述代码中,func函数的参数为int数组,但是在函数内无法获取数组的长度。因此,sizeof(arr)会返回指针的大小,而不是数组的大小。

为了解决这个问题,可以在函数中传入数组的长度作为参数。例如:

void func(int arr[], int len)
  // ...
int main()
{
  int arr[] = 5;
  int len = sizeof(arr) / sizeof(arr[0]);
  func(arr, len);
  return 0;
}

在上述代码中,func函数接收两个参数:int数组和数组的长度。在调用函数时,先通过sizeof运算符求出数组的长度,然后将长度作为参数传递给函数。

总的来说,C++中的数组可以通过sizeof运算符求出其长度,但是在作为函数参数传递时需要注意长度信息的丢失问题。

  
  

评论区