计算数组长度

计算数组长度

 //法一

//**********c/c++ code***********

 //计算占用内存大小

sizeof(array)

//计算数组元素个数

sizeof(array) / sizeof(array[0])

 

//法二

sizeof在函数调用的时候不适合,strlen只能用于char


 //法三

#include <iostream>

int main()

{

     int arr[7] = { 0 };

     std::cout << sizeof(arr) / sizeof(int) << std::endl;

     std::cout << std::end(arr) - std::begin(arr) << std::endl;

     return 0;

}

PS:如有错误欢迎指正微笑


### C语言中计算数组长度的方法 在C语言中,可以通过多种方法计算数组长度。以下是几种常见的方法: #### 方法一:使用 `sizeof` 计算数组长度 通过 `sizeof` 运算符可以计算数组的总大小,并除以单个元素的大小来得到数组长度。这种方法适用于已知数组类型的场景。 公式如下: \[ \text{length} = \frac{\text{sizeof(array)}}{\text{sizeof(array[0])}} \] 代码示例如下: ```c #include <stdio.h> int main() { int array[] = {1, 2, 3, 4, 5}; size_t length = sizeof(array) / sizeof(array[0]); printf("数组长度为: %zu\n", length); return 0; } ``` 上述代码展示了如何通过 `sizeof` 来计算数组长度[^2]。 #### 方法二:使用宏定义计算数组长度 如果希望代码更具可维护性,可以使用宏定义的方式来计算数组长度。这种方式的优点在于代码更简洁,且易于修改。 代码示例如下: ```c #include <stdio.h> #define ARRAY_LENGTH(arr) (sizeof(arr) / sizeof((arr)[0])) int main() { int array[] = {1, 2, 3, 4, 5}; size_t length = ARRAY_LENGTH(array); printf("数组长度为: %zu\n", length); return 0; } ``` 上述代码利用宏定义 `ARRAY_LENGTH` 实现了对数组长度计算[^3]。 #### 方法三:字符串数组长度计算 对于字符串数组(字符数组),可以使用 `strlen` 函数计算字符串的长度,但需要注意的是,`strlen` 不会包含字符串结束符 `\0` 的长度。而 `sizeof` 则会包含结束符的长度。 代码示例如下: ```c #include <stdio.h> #include <string.h> int main() { char str[] = "abcdd"; printf("用 strlen() 计算字符数组长度: %zu\n", strlen(str)); printf("用 sizeof() 计算字符数组长度: %zu\n", sizeof(str)); return 0; } ``` 上述代码展示了如何分别使用 `strlen` 和 `sizeof` 来计算字符串数组长度[^1]。 #### 注意事项 - 如果数组作为函数参数传递,则无法直接使用 `sizeof` 或其他方式计算长度,因为此时数组退化为指针。 - 在动态分配数组的情况下,需要手动记录数组长度,因为编译器无法自动推断动态数组的大小。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值