How do I find the length of an array?

前端 未结 27 3465
轮回少年
轮回少年 2020-11-21 23:10

Is there a way to find how many values an array has? Detecting whether or not I\'ve reached the end of an array would also work.

27条回答
  •  清歌不尽
    2020-11-21 23:24

    If you mean a C-style array, then you can do something like:

    int a[7];
    std::cout << "Length of array = " << (sizeof(a)/sizeof(*a)) << std::endl;
    

    This doesn't work on pointers (i.e. it won't work for either of the following):

    int *p = new int[7];
    std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
    

    or:

    void func(int *p)
    {
        std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
    }
    
    int a[7];
    func(a);
    

    In C++, if you want this kind of behavior, then you should be using a container class; probably std::vector.

提交回复
热议问题