求数组长度

本文介绍了一种新颖的方法来确定数组的长度。不同于传统的宏定义方式,此方法利用模板特性,通过辅助函数 ArraySizeHelper 来计算数组的大小,为 C++ 开发者提供了一种更安全可靠的数组长度获取手段。

求数组长度

求数组长度一般采用的是#define count_of(arg) (sizeof(arg) / sizeof(arg[0])),但这个宏对于指针在编译是不报错的,chrome用的是这种方法:

在写的清楚点就是这样:

又学到了一个小技巧,记录一下

 

不同编程语言数组长度的方法如下: ### Java 在 Java 中,数组一旦创建,程序运行期间长度不可改变。可以通过数组的 `length` 属性来获取数组长度。示例代码如下: ```java public class Main { public static void main(String[] args) { int[] arrayA = new int[3]; int[] arrayB = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 3, 3, 4, 4, 55}; int len = arrayB.length; System.out.println("数组B的长度为:" + len); int[] arrayC = new int[3]; System.out.println(arrayC.length); arrayC = new int[5]; System.out.println(arrayC.length); } } ``` 这里使用 `array.length` 的方式获取数组长度,其中 `array` 为数组名[^1]。 ### C 和 C++ C、C++ 中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了 `strlen` 函数获取长度。对于其他类型的数组,可以使用 `sizeof(array) / sizeof(array[0])` 来计算数组长度。在 C 语言中习惯上把它定义成一个宏,在 C++ 中则可以使用模板技术定义一个函数。示例代码如下: #### C 语言宏定义方式 ```c #include <stdio.h> #define GET_ARRAY_LEN(array, len) {len = (sizeof(array) / sizeof(array[0]));} int main() { int array[] = {1, 2, 3, 4, 5}; int len; GET_ARRAY_LEN(array, len); printf("数组长度为: %d\n", len); return 0; } ``` #### C++ 模板函数方式 ```cpp #include <iostream> template<typename T, size_t N> size_t getArrayLength(T (&array)[N]) { return N; } int main() { int array[] = {1, 2, 3, 4, 5}; size_t len = getArrayLength(array); std::cout << "数组长度为: " << len << std::endl; return 0; } ``` 在 C 和 C++ 中,`sizeof(数组名)` 计算得到这个数组占用内存的长度数组逻辑上的长度大小等于 `sizeof(数组名)/sizeof(数组类型)` [^2][^3]。 ### Python 在 Python 中,可以使用 `len()` 函数来获取数组(Python 中通常使用列表来表示数组)的长度。示例代码如下: ```python array = [1, 2, 3, 4, 5] length = len(array) print(f"数组长度为: {length}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值