Cita:
Iniciado por Nivel7
no evita en insitir en que no estoy equivocado.
Y yo sigo insistiendo en que no me has entendido. Vuelve a leer mis comentarios, aquí te les explico por 3ª vez:
El primer comentario que hice, simplemente te corregía una afirmación que habías hecho:
Cita:
Iniciado por MaxExtreme En realidad, da =.
La aritmética de punteros se puede hacer tanto con enteros (como Instru hizo), lo cual es el uso normal, o como tú has hecho, sumando punteros (no muy normal).
p+1; // Instru
p+q // Nivel7
En ese comentario yo no veo nada incorrecto, ni veo que lo que haya dicho sea erróneo, como luego tú indicas en tu primera réplica:
Cita:
Iniciado por Nivel7 y esto no es del todo cierto.
¿Me puedes apuntar dónde no es del todo cierto?
Después, en mi segundo comentario te desmenuzo aún más tu mensaje, y te pongo ejemplos para demostrarte que
da igual sumar enteros que punteros a un char*, así:
Cita:
Iniciado por MaxExtreme Si tú a un char * le sumas (char)K, incrementarás K bytes.
Si tú a un char * le sumas (short)K, incrementarás K bytes.
Si tú a un char * le sumas (int)K, incrementarás K bytes.
... y lo mismo siempre.
Mientras que en tu réplica vuelves a malinterpretar tu mensaje, y me respondes con algo similar a lo que te escribí pero ya en C:
Cita:
Iniciado por Nivel7 char *result1 = (char*)((char* )&cad[25] - 8);
char *result2 = (char*)((short* )&cad[25] - 4);
char *result3 = (char*)((int* )&cad[25] - 2);
char *result4 = (char*)((long long*)&cad[25] - 1);
Que si te fijas, es diferente a lo que yo estaba hablando.
Fíjate la diferencia entre lo que hablaba yo y en lo que lo has transformado tú:
- MaxExtreme: Sumar ENTEROS (char, short, int) a CHAR*
- Nivel7: Sumar INTs a PUNTEROS (char *, short *, int *).
No hace falta que cites libros...