Hola,
tengo esta espina hace más de medio año, ojalá me puedan ayudar a comprender el tema.
No comprendo como es que funciona la siguiente linea:
comprendida en el siguiente código:
Código:
int mat[num_filas][num_columnas], (*p)[num_columnas], i;
for(p = &mat[0]; p < &mat[num_filas]; p++)
(*p)[i] = 0;
Según mi libro, este for limpia la columna i de la matriz. Entiendo que p es un puntero a un array de enteros de tamaño num_columnas. Entiendo que en el for le asigna la primera fila de la matriz al puntero, comprueba que sea menor o igual a la ultima fila, y aumenta p de fila en fila. Y entiendo que en
la i es la columna a rellenar con 0, pero lo que me confunde es el uso del valor al que apunta p, es decir (*p) con un subíndice. Además en mi libro dice que los paréntesis de (*p) son necesarios ya que sino el compilador interpretaría *(p[i]), lo cual sí que tiene sentido para mi.