GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Mindmap

Apuntadores

Ashirogi Muto Spanisch

Inhalt der Mindmap

Apuntadores

  1. Note que claramente es distinta información el lote donde está la puerta de una casa que, por ejemplo, el número de personas que viven en la casa.

    • En la casa de José viven 5 personas pero la puerta se encuentra en el lote 3.
      • Entonces se pueden hacer preguntas como las siguientes:
        • Cual es el lote de la puerta de la casa de Pedro?.
        • Cuanta gente vive en el depto. 5 del Edificio de departamentos Villas del Limón?.
        • Cuanta gente vive en el tercer departamento del Edificio de deptos. El Escapulario?.
        • Cuanta gente vive en la finca que comienza en el lote 96?.
        • De una manera casi idéntica al pueblo ficticio se maneja la memoria de una computadora en C.
          • Los lotes del pueblo representan las direcciones de memoria agrupada por bytes. Una computadora con arquitectura de 32 bits puede manejar hasta 4 GBytes de memoria RAM.
            • Las etiquetas de los habitantes de alguna finca es el nombre de la variable que definimos.
              • El número de habitantes de una finca es el valor de una variable.
                • Así una variable declarada como char usará un solo byte (un lote), mientras que otra declarada como int o float necesitarán de 4 bytes, y una del tipo double apartará 8 bytes.
            • Los edificios de departamentos son los arreglos que declaramos, el nombre del edificio es el nombre del arreglo, el número del depto. es el índice del arreglo.
              • Una variable que almacena el número de lote de una casa se le llama apuntador.
                • Una variable que se dice apuntadora es aquella que se usa para guardar la información de la dirección de otra variable.
                  • Note que para almacenar la dirección de una variable de cualquier tipo siempre se necesita el mismo numero de bytes, 4.
                    • Esto es porque solo se almacena la dirección, no su valor.
    • Una variable que guarde el no. de lote de una finca se dice que es un apuntador.
      • El tamaño del apuntador debe ser suficiente como para poder representar el número del lote más alejado.
    • La capacidad para guardar números de lote es distinta que la variable que nos dice el número de habitantes de una casa, por ejemplo.
  2. Desgraciadamente en el manejo de apuntadores se usan símbolos que ya C usa para otras operaciones. Los símbolos usados son el & y el *.

    • La manera en la que distinguimos si el símbolo se está usando como un operador de apuntadores o de variables nos la indica el contexto de uso, por ejemplo:
      • if(a&&b==0)//aquí usamos el && como un and lógico. c=a&b;//Usamos el & como una operación binaria.
        • En ambos casos usamos el o los &'s entre dos variables!.Esto nos da la pista de que no son apuntadores con lo que se está trabajando.
      • Para contestar a la pregunta de cual es el número de lote donde está la puerta de la casa de Pedro se utiliza el símbolo & , de tal manera que: int a; &a
        • da la dirección donde está localizada la variable a. Note que esta vez el & solo involucra a una variable, es por esto que sabemos que estamos trabajando con apuntadores.
      • Desgraciadamente el uso de * en C representa distintas cosas según el contexto, hay que poner mucha atención no solo al símbolo, sino de que manera se está usando.
        • Hasta ahora hemos visto el uso del * como la multiplicación de dos variables: c=a*b; c*=a; //c=c*a
          • Note que este contexto siempre están involucradas dos variables. Por eso sabemos que el * se está usando como el símbolo de multiplicación.
        • Otro uso que se le da al * es cuando se usa en una declaración: int *pointer; float max_min(float a[],float *min,float *max);
          • Note que los ejemplos anteriores están en un contexto de declaración, en el primer caso se declara una variable llamada pointer, en el segundo se declara la llamada de la función max_min que regresa un valor flotante y que tiene como argumentos un arreglo de flotantes y dos variables que usan el *.
            • ● En el caso de los ejemplos anteriores lo que se está haciendo es la declaración de una variable del tipo apuntador.
          • En la primera linea pointer es un apuntador a una variable del tipo entero.
          • En la segunda linea, los argumentos min y max son variables apuntadoras a flotantes.
          • En este contexto anteponer un * a una variable le indica al compilador que la variable será usada para guardar direcciones.
            • Note que se restringe al apuntador a apuntar a una clase particular de objeto: cada apuntador señala a un tipo específico de datos.
              • Existe un tipo comodín llamado void.
        • El tercer contexto donde se usa el *, es cuando se le aplica a un apuntador, por ejemplo:
          • int *pointer; int a; a=0; //asigna a a el valor 0. pointer=&a;//se amacena en pointer la dirección //donde se guarda la variable a. *pointer=5;//Modifica el contenido de la dirección //a la que apunta pointer, le pone el //valor de 5. printf(“a=%d” ,a);//que imprimirá?
            • En este contexto al * se le llama operador de indirección o desreferencia.
              • Y lo que realiza es una asignación de un valor a la localidad apuntada por el apuntador pointer (osea a a).

Informationen

Beschreibung
Mindmap am Apuntadores, erstellt von Ashirogi Muto am 01/12/2022.
Erstellt von
Ashirogi Muto
Aufrufe
0
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck