365bet中文版

C/C++中如何获取数组的长度(宏&模板)

📅 2026-07-13 21:54:27 👤 admin 👁️ 6819 🏷️ 298

C、C++中没有提供 直接获取数组长度的函数。对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用 sizeof(array) / sizeof(array[0])

在C语言中习惯上在 使用时都把它定义成一个宏,比如

#define GET_ARRAY_LEN(array, len) { len = sizeof(array)/sizeof(array[0]);}

代码实例:

#include

#include

using namespace std;

#define GET_LEN(array, len) { len = sizeof(array)/sizeof(array[0]);}

int main()

{

int list[] = {1,2,3,4,5,6,7,8,9,0};

int length;

GET_LEN(list, length);

printf("%d\n", length);

return 0;

}

在C++中则可以使用模板 技术定义一个函数,比如:

template

int getArrayLen(T&array)

{

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

}

代码实例:

#include

#include

using namespace std;

template

int getArrayLen(T&array)

{

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

}

int main()

{

int list[] = {1,2,3,4,6,5,7,8,9,0};

int length = getArrayLen(list);

printf("%d\n", length);

return 0;

}

这样对于不同类型的数 组都可以使用这个宏或者这个函数来获取数组的长度了。

参考链接:http://blog.csdn.net/bopzhou/article/details/6063163/

相关推荐

马字组词

马的组词:驰骋在文字世界的骏马 在我们丰富多彩的汉语世界里,“马”这个字可是有着无穷的魅力和多样的组合。今天,就让我们一起踏上探

拳皇97哪个大门最厉害

一、介绍 在拳皇97中,大门是一个备受瞩目的角色,以其强大的攻击力和独特的技能机制,成为了许多玩家的首选。本文将对大门进行深入的分

景美又省钱,感受醴陵版“向往的生活”

大的远方,实在太多人介绍过了,从新疆到西藏,从东北到云南。 有的远方,即使你去过,拥有过,仍然会向往,仍然会想念 而今天,我想推