c/c++ 获取数组长度

在C/C++中并没有提供直接获取数组长度的函数

c/c++ 获取数组长度其中一种方法是使用sizeof(array) / sizeof(array[0])。

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

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

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

template <class T>
int getArrayLen(T& array)
{
return (sizeof(array) / sizeof(array[0]));
}

这样对于一些简单的数组可以使用这个宏或者这个函数来获取数组的长度了。

c语言用法:
#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));}
//定义一个带参数的宏,将数组长度存储在变量len中
int main()
{
char a[] = {‘1‘,‘2‘,‘3‘,‘4‘};
int len;

GET_ARRAY_LEN(a,len)
//调用预定义的宏,取得数组a的长度,并将其存储在变量len中
}

c++用法:
int main()
{
char a[] = {‘1‘,‘2‘,‘3‘};
cout << getArrayLen(a) << endl;
}

时间: 2024-10-25 08:43:30

c/c++ 获取数组长度的相关文章

通过模板获取数组长度

通常在代码中我们需要获取数组长度 一种比较简单的方式是使用 sizeof 操作符 如下: #define SizeOfArray(arr) (sizeof(arr)/sizeof((arr)[0])) //这样使用没有问题 int a[10] = {0}; int size = SizeOfArray(a); 但是如果传入的是指针 调用SizeOfArray就会出错或者得到不正确的结果 通常情况下如果传入的是指针指向的数组 我们希望编译器在编译的时候就能提示错误 因此提供下面这个版本 使用了c+

什么情况下使用break关键字? 什么情况下使用Continue关键字? Java如何声明一个数组?JS如何声明一个数组?如何获取数组长度? 如何遍历数组?

什么情况下使用break关键字?什么情况下使用Continue关键字? Break Break关键用于终止循环. 示例: 1 2 3 4 5 6 for (int i = 0; i < 10; i++) {   if (i == 4) {     break; //终止循环,后面的循环不再执行   }   System.out.println(i); } Continue Continue关键字用于终止本次循环,其它循环继续. 示例: 1 2 3 4 5 6 7 for (int i = 0;

C++获取数组长度

1.获取字符数组长度 char a[]="abcdef"; int length1=sizeof(a)/sizeof(a[0]); cout<<"a"<<length1<<endl; length1为7. cout<<"a"<<strlen(a)<<endl; 输出6 注:string不能用strlen函数 2.获取字符串string长度 #include <strin

C++获取数组长度!

一.静态数组. 比如 int int_ary[5] ,静态数组在编译的时候就知道了数组长度,这对编译器来说挺好实现的. 用得最多的大概就是sizeof了吧: 1 #define countof_macro(x) (sizeof((x)) / sizeof(x)[0]) 对于C++,可以用模板. 如果将数组作为函数形参的话,它会退化成一个指针,但是引用则不会.使用引用带来的另外一个问题就是,声明参数时必须知道数组长度——我要是知道我还费这劲干啥?解决方法就是使用模板,将数组引用的数组大小声明为模板

js获取数组长度,对象成员个数字、符串字数

文章来源:百度文库 Javascript怎么得到数组长度(也就是数组的元素个数)? Javascript怎么获取对象的成员个数? 你肯定想到了array.length!? 那么我们来测试一下下面这个例子. <script type="text/javascript"> var a = []; a[50] = 50; alert(a.length); </script> 请问数组a有多少个元素, 或者换一句话说, 数组a的长度为多少? 你会告诉我长度为1, 但浏览

Java 实例 – 获取数组长度

package array; public class ArrayLength { public static void main(String[] args) { /** * 获取数组的长度 */ int i[] = { 1, -4, 1, -2, 4, 7, 8, 5, 4, -1, 25 }; System.out.println("数组长度是:"+i.length); } } 输出结果为 数组长度是:11 原文地址:https://www.cnblogs.com/zhuxiao

PHP | 获取数组长度的方法

一.获取一维数组的长度 count.sizeof 都可以直接统计一维数组长度. 例如:$arr = Array('0','1','2','3','4');       echo count($arr);    // 输出5 $arr = array('A','B','C');               echo sizeof($arr);   // 输出3 二.获取多维数组的长度 e.count函数有两个参数: 0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组); 1(或C

JavaScript 数组 length 属性获取数组长度或设置数组元素的数目

JavaScript 数组 length 属性 JavaScript 数组 length 属性可返回或设置或组中元素的数目,语法如下: array_object.length 利用 length 属性得到元素数目 <script language="JavaScript"> var array_1 = new Array('a',10.5,true); document.write( '数组长度 ' + array_1.length ); </script> 运

lua中获取数组长度问题

lua中获取table长度常用的方法有两种 : 1:table={}   print(#table) 2:arr={}   table.getn(arr) 两者最重要的区别还是存在的,前者 “#” 在下标索引不连续的时候会得到 0.(博主的测试而已,如有异议,请告知下,一起学习)