sizeof(arr)/sizeof(arr[0])-1
时间: 2023-09-29 13:08:09 浏览: 75
这是一个常用的数组长度计算方法。其中,arr是一个数组,sizeof是一个运算符,它用于计算变量的大小(字节数)。arr[0]表示数组中第一个元素的值,因为数组中的每个元素的大小都相同,所以可以用sizeof(arr[0])来计算每个元素的大小。所以,sizeof(arr)/sizeof(arr[0])表示整个数组的元素个数。-1是因为数组下标是从0开始计数的。这个计算方法可以避免在计算数组长度时出现错误。
相关问题
sizeof(arr) / sizeof(arr)
sizeof(arr) / sizeof(arr) 是一个常见的用法,用于计算数组的长度。其中,sizeof(arr) 表示数组 arr 的总字节数,sizeof(arr) 表示数组中每个元素的字节数。通过将总字节数除以每个元素的字节数,可以得到数组的长度。
这个用法适用于静态数组,即在编译时已知数组大小的情况下。它可以帮助我们在编程中动态地获取数组的长度,而不需要手动指定数组的长度。
需要注意的是,这个用法只适用于数组,对于指针类型是无效的。因为指针只存储了数组的首地址,并不知道数组的长度。
sizeof(arr)/sizeof(*arr)
这段代码用于计算数组arr的长度,其中sizeof(arr)返回整个数组的大小,而sizeof(*arr)返回数组中元素的大小。因此,sizeof(arr)/sizeof(*arr)可以得到数组arr的长度。这个方法在C++中非常常用,可以避免在循环中手动计算数组长度的麻烦。
下面是一个例子,演示如何使用sizeof(arr)/sizeof(*arr)计算数组长度:
```cpp
#include <iostream>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(*arr);
cout << "The length of the array is: " << len << endl;
return 0;
}
```
输出结果为:
```
The length of the array is: 5
```