• C/C++中获取数组的长度


    C/C++中没有提供直接获取数组长度的函数。对于存放字符串的字符数组,可用strlen函数获取长度

    如:char a[]="hello world";int count = strlen(a);

    对于其他类型的数组,可使用sizeof(array)/sizeof(array[0]),计算长度。

    在C中,可在使用时把它定义成宏,

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

    在C++中,可使用模板技术,定义这个函数,需要将数组参数作为引用类型传递,否则数组名称会退化为一个指针,这样就无法计算数组的大小sizeof(a)。

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

    对于存放字符串的字符数组,也可以使用这种方法来计算长度,但是计算后的值需要减去1,

    即sizeof(a)/sizeof(a[0])-1,因为字符串默认带有结束符号''

    使用示例如下:
    C语言:

    #include<stdio.h>
    #define GET_ARRAY_LENGTH(array,len){len=(sizeof(array)/sizeof(array[0]));}
    int main()
    {
        char a[]={'1','2','3'};
        int num;
        GET_ARRAY_LENGTH(a,num);
        printf("%d
    ",num);
        return 0;
    }

    C++语言:

    #include<iostream>
    template<class T>
    int GetArrayLen(T& a)
    {
        return sizeof(a)/sizeof(a[0]);
    }
    int main()
    {
        char a[]={'1','2','3'};
        int num = GetArrayLen(a);
        std::cout<<num<<std::endl;
        return 0;
    }
  • 相关阅读:
    字符编码
    各种数据类型内置方法
    数字类型内置方法一
    流程控制基础
    Python基础知识其三
    VirtualBox中使用ubuntu-16.04.1安装devstack的Compute节点
    VirtualBox中使用ubuntu-16.04.1安装devstack的Controller节点
    MySQL数据库简单操作
    MySQL常用命令及语句规范
    MySQL登录及退出
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/5535387.html
Copyright © 2020-2023  润新知