给定一个数组,根据数组名求数组的长度
题目:给定一个数组名字,如何根据数组名求数组的长度?
本题来自于一个同学笔试题,笔试中是实现一个冒泡排序,但是排序的参数只有一个数组名,没有数组中元素的个数;void bubbleSort(int a[]);
思路:要先实现这个冒泡排序,首先要获取这个数组中数组元素的个数。然后对数组排序,下面说一下如何根据数组名获取一个数组长度。
首先我们如果在局部作用域中定义一个数组的话,获取数组中元素个数是很方便的:
int main(int argc, char * argv[]) { int a[11]; for (int i = 0; i < 10; ++i) { a[i] = i; } int len = 0;
len = (sizeof(array) / sizeof(array[0])); cout << len << endl; return 0; }
但在C++中可以使用模板技术可以实现:
template <class T> int getArrayLen(T& array) { return (sizeof(array) / sizeof(array[0])); } int main(int argc, char * argv[]) { int a[11]; for (int i = 0; i < 10; ++i) { a[i] = i; } int len = 0; cout << getArrayLen(a) << endl; return 0; }
#define getSize(a, len){len = (sizeof(a) / sizeof(a[0]));}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: JAVA基础及语法部分面试题(5)-----异常部分
- 下一篇: 异常