Saludos,
- El tema de los punteros es un lío XD, yo no lo acabo de digerir completamente, cada vez que los necesito le echo una ojeada a este Paper:
https://openlibra.com/es/book/introduccion-a-los-punteros-en-c al menos dándole un par de leídas y poniéndolo en práctica lo entiendo por un tiempo
- Wow, yo pensé que los punteros eran simples direcciones de memoria, pero al parecer son rangos de direcciones de memoria donde el tamaño del rango es el tipo de variable.
- Estoy haciendo el siguiente experimento intentando sumarle +1 al puntero para que apunte al siguiente caracter pero no lo hace, este le suma +4 porque el tipo es
int. Pero si lo hago con
char me manda una advertencia el compilador:
/* Realice un programa que tenga una función que mediante apuntadores pueda transformar un
número entero en una cadena de caracteres formada por los dígitos del número entero. */
#include <stdio.h>
int main() {
int numero = 1869898055; // "Gato" en decimal litle endian
int *puntero = №
printf("Puntero - 1 = %p\n", puntero
- 1); printf("Puntero = %p\n", puntero
); printf("Puntero + 1 = %p\n", puntero
+ 1); for (int i = 0; i < 4; i++) {
puntero += 1;
}
return 0;
}
C:\Users\EdSon\Desktop>gcc punteros.c -o punteros.exe && punteros.exe
Puntero - 1 = 0028FF20
Puntero = 0028FF24
Puntero + 1 = 0028FF28
G☺,Ç
/* Realice un programa que tenga una función que mediante apuntadores pueda transformar un
número entero en una cadena de caracteres formada por los dígitos del número entero. */
#include <stdio.h>
int main() {
int numero = 1869898055; // "Gato" en decimal litle endian
char *puntero = №
printf("Puntero - 1 = %p\n", puntero
- 1); printf("Puntero = %p\n", puntero
); printf("Puntero + 1 = %p\n", puntero
+ 1); for (int i = 0; i < 4; i++) {
puntero += 1;
}
return 0;
}
C:\Users\EdSon\Desktop>gcc punteros.c -o punteros.exe && punteros.exe
punteros.c: In function 'main':
punteros.c:8:19: warning: initialization of 'char *' from incompatible pointer type 'int *' [-Wincom
patible-pointer-types]
8 | char *puntero = №
| ^
Puntero - 1 = 0028FF23
Puntero = 0028FF24
Puntero + 1 = 0028FF25
Gato