¿qué ** media en C

¿Qué significa cuando un objeto tiene 2 asteriscos al principio?

**variable
  • La gente salta por todo el trivial de preguntas, ya que tienen un montón de puntos de vista (106 hasta el momento) y así un montón de upvotes. Por lo tanto 16 upvotes en el minuto 17 para una relativamente básico de respuesta
  • posibles duplicados de Utiliza para varios niveles de puntero elimina referencias?
  • Me sorprende que hay tantas respuestas directas a un… ¿cómo debo decir, indirectos pregunta. 😉
  • Además de ser fácil rep, preguntas simples aso tiene la audiencia más amplia. Yo podría contestar a esta pregunta, usted podría responder a esta pregunta, una persona que es de tres semanas en su primer CS de la clase, probablemente, podría responder a esta pregunta, etc. Así que incluso si un menor porcentaje de personas optan por responder, es probable que obtener una gran cantidad de respuestas. Que es un lamentable error en el MODO sistema — raras conocimiento es probable que reciben menos recompensa.
  • Sin código sorprendió a nadie que le ofreció la multiplicación utilizando un puntero. resultado = x **puntero;
  • Posibles duplicados de ¿Qué es el * * * * * en C++?

InformationsquelleAutor numerical25 | 2010-05-23

12 Kommentare

  1. 29

    Es puntero a puntero.
    Para más detalles se puede consultar : Puntero a puntero

    EDITAR Que puede ser bueno, por ejemplo, para la asignación dinámica de las matrices multidimensionales :

    Como :

    #include <stdlib.h>
    
    int **array;
    array = malloc(nrows * sizeof(int *));
    if(array == NULL)
    {
        fprintf(stderr, "out of memory\n");
        exit or return
    }
    for(i = 0; i < nrows; i++)
    {
        array[i] = malloc(ncolumns * sizeof(int));
        if(array[i] == NULL)
        {
            fprintf(stderr, "out of memory\n");
            exit or return
        }
    }
    • También sería una buena idea para demostrar adecuadamente liberar la matriz multidimensional en el orden inverso de la asignación.
    • Sí tienes razón :). No olvidar el uso del for(int i = 0; i < nrows; i++) free(array[i]); free(matriz); liberar la memoria asignada.
    • Gracias. Ese vínculo fue el más beneficioso.
  2. 46

    En una declaración, significa que es un puntero a un puntero:

    int **x;  //declare x as a pointer to a pointer to an int

    Cuando se la usa, se deferences dos veces:

    int x = 1;
    int *y = &x;  //declare y as a pointer to x
    int **z = &y;  //declare z as a pointer to y
    **z = 2;  //sets the thing pointed to (the thing pointed to by z) to 2
              //i.e., sets x to 2
    • Y lo que si vas a establecer z a 2 uso de un solo punto *z = 2 ??
    • Iba a cambiar y a punto para la ubicación de la memoria 2, y *y = 1; o **z = 1; ambos se trate de cambiar la tarjeta de memoria en la dirección 2, que es casi seguro fuera del alcance jurídico de que usted ha sido asignado
  3. 6

    Puntero a un puntero cuando se declara la variable.

    Doble puntero de referencia cuando se utiliza fuera de la declaración.

  4. 2

    **variable es el doble de eliminar. Si la variable es una dirección de una dirección, la expresión resultante será el lvalue en la dirección almacenada en *variable.

    Puede significar cosas diferentes si se trata de una parte de la declaración:

    tipo **variable implicaría, por otra parte, un puntero a un puntero, es decir, una variable que puede contener la dirección de otra variable, que es también un puntero, pero esta vez a una variable de tipo ‘tipo’

  5. 2

    Significa que la variable se eliminan las referencias dos veces. Supongamos que usted tiene un puntero a un puntero a char como este:

    char** variable = …;

    Si quieres acceder al valor de este puntero que apunta, usted tiene que eliminar dos veces:

    **variable

  6. 1

    Es un puntero a un puntero. Puede utilizar esta opción si desea apuntar a un array, o un const char * (cadena). También, en Objective-C con el Cacao este es a menudo usado para apuntar a un NSError*.

  7. 1

    Puntero a otro puntero

    • Si se le pregunta a una pregunta básica, que probablemente se necesita el concepto de un puntero explicó, también.
  8. 0

    su un puntero a puntero.
    como en si *x significa que va a contener una dirección de alguna variable que si me dicen
    m=&x que m se muestra como
    int **m

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea