Algunos puntos de conocimiento sobre nombres de matrices y punteros

1. El nombre de la matriz se puede considerar como un puntero al primer elemento de la matriz.

#define debug qDebug()<<
int main(int argc, char *argv[])
{
    char v[] = "this is a string";
    char * p2 = v;
    debug strlen(p2);
    debug strlen(v);
}

 

Aquí se realiza una conversión implícita:

    char * p2 = "this is a string";

Esta es una cadena de estilo en lenguaje C.

2. No hay conversión de puntero a matriz.

3. Array puede usar rango para bucle:

    char v[] = "this is a string";
    for(auto & c:v)
    {
        debug c;
    }

4. No puede pasar la matriz a la función por valor. Por lo general, se pasa el puntero al primer elemento de la matriz (nombre de la matriz), pero de esta manera, el número de elementos de la matriz puede hacer que la matriz salga de límites, por lo que la forma habitual es Almacenar el contenido de la matriz en el contenedor y pasar el contenedor a la función.

Supongo que te gusta

Origin blog.csdn.net/kenfan1647/article/details/113809869
Recomendado
Clasificación