I'm trying to understand what this function does in pratice:
    inline std::size_t get_significant_uint64_count_uint(
        const std::uint64_t *value, std::size_t uint64_count)
    {
        value += uint64_count - 1;
        for (; uint64_count && !*value; uint64_count--)
        {
            value--;
        }
        return uint64_count;
    }
It looks like it modifies value but also uint64_count. I couldn't find what && does but I guess here it's for "AND". Anyways, it looks like the for loop runs until uint64_count>0 and *value!=0. But I don't get the logic.
Function is from here
 
     
     
    