Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

86
Vistas
Matriz de puntero en C?

Los punteros son un tema difícil, sin duda, pero me he encontrado con este fragmento y simplemente no puedo entender qué es el p[-1] :

 #include <stdio.h> int main(void) { int t[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = t; p += 2; p += p[-1]; printf("%d",*p); return 0; }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cada vez que vea una expresión como a[b] en C, puede pensar mentalmente que está sucediendo *(a + b) .

Entonces, es solo "el contenido del elemento anterior al que apunta p en este momento".

Dado que p está en t + 2 , p[-1] se refiere a t[2 + (-1)] es decir, t[1] .

over 4 years ago · Santiago Trujillo Denunciar

0

p += p[-1];

Se puede escribir como

 p = p + *(p-1);

En ese punto, p apunta al tercer elemento de la matriz (valor 3 ) y *(p-1) es 2 .

Entonces, es equivalente a

 p = p+2;

e imprimir *p imprimiría 5 .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda