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 }
