CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
parciales/2021-1C-1p/main.cpp (1848B)
   1 #include <iostream>
   2 
   3 int main(){
   4     int *A, *C, *F, **B, H;
   5     char *D, *E, G;
   6 
   7     H = 65;
   8     G = 'C';
   9     F = new int[3]; // arreglo de 3 enteros
  10 
  11     for (int i = 0; i < 3; i++) {
  12         F[i] = H + i; // asigna a cada valor de F (65 + `i`)
  13     }
  14 
  15     H++;   // incrementa la variable H
  16     A = F; // el puntero A apunte al primer elemento de F
  17 
  18     C = new int; // se crea un nuevo entero el cual es apuntado por C
  19 
  20     (*C) = A[1]; // se asigna el valor del primer elemento de A,
  21                  // el cual apunta al primer elemento de F, a la variable que
  22                  // apunta C
  23 
  24     A = F + 2; // es equivalente a A = F[2];
  25 
  26     // imprime el primer valor de F, el primer valor de C y A
  27     std::cout << (*F) << (*C) << A[0] << std::endl;
  28 
  29     B = &C; // *B apunta al primer elemento de C
  30     A = C;  // A apunta al primer elemento de C
  31 
  32     C = F + 1; // equivalente a C = F[1];
  33 
  34     (**B) = H + 2;  // lo que apunta *B (primer elemento de C) ahora vale `H+2`
  35 
  36     std::cout <<  (*C) <<  (**B) << (*A) << std::endl; 
  37 
  38     // `cast` de la variable apuntada por A a tipo char
  39     D = (char*) A;
  40     E = (char*) *B;
  41 
  42     // el primer elemento de F ahora vale `70`;
  43     F[1] = 70; 
  44 
  45     std::cout << (*D) << (*E) << (*A) << std::endl; 
  46 
  47     E = &G; // `E` ahora apunta a la direccion de memoria de `G`
  48     H++;    // se incrementa el contenido de la variable `H`
  49 
  50     G = (char) H; // `G` ahora contiene el valor de `H` "casteado" a `char`
  51 
  52     H++; // se incrementa el contenido de la variable `H`,
  53          // esto no afecta a `G` ya que `G` no es puntero
  54 
  55     (*A) = H; // el contenido de la variable apuntada por `A` ahora 
  56               // es igual a `H`
  57 
  58     E = D; // ahora el puntero `E` apunta a la misma direccion que `D`
  59 
  60     std::cout << (*E)++ << (*D)++ << G << std::endl; 
  61 
  62     delete A;
  63     delete[] F;
  64     return 0;
  65 }