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


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

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

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

     代码实例:

    #include<cstdio>
    #include<iostream>
    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
    ", length);
        return 0;
    }

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

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

     代码实例:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    
    template <class T>
    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
    ", length);
        return 0;
    }

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

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

  • 相关阅读:
    #Quiz(ra992_110510) Jun
    About Invertible Matrices Jun
    RadonNikodym定理“推广”(Ex 2.12.2) Jun
    Basic Notes for Matrices Jun
    恋爱侧面观 Jun
    ViewHolder的改进写法
    Android高手速成第二部分 工具库
    网页下拉列表实现多选
    Android高手速成第四部分 开发工具及测试工具
    Android高手速成第三部分 优秀项目
  • 原文地址:https://www.cnblogs.com/tanrong/p/8516948.html
Copyright © 2020-2023  润新知