Duplicar posible:
C pointer to array/array of pointers disambiguation¿Cuál de * y [] se unen más fuerte en C?
En C, es int *thing[5]
una serie de cinco puntos, cada uno apuntando a un entero o un puntero a una matriz de cinco números enteros?
Duplicar posible:
C pointer to array/array of pointers disambiguation¿Cuál de * y [] se unen más fuerte en C?
En C, es int *thing[5]
una serie de cinco puntos, cada uno apuntando a un entero o un puntero a una matriz de cinco números enteros?
[]
triunfos *
por el C precedence table lo que significa que tiene una matriz de cinco punteros int.
Quizás es un duplicado ... Es una matriz de cinco punteros a entero; el programa cdecl
citado en una pregunta similar puede ser útil para los recién iniciados:
cdecl> explain int *t[5];
declare t as array 5 of pointer to int
En caso de duda utilización paréntesis - los programadores de mantenimiento se lo agradecerán
Ausente cualquier agrupación explícita con paréntesis, tanto el operador de subíndice de matriz []
y llamada de función operador ()
se unen antes de *
, de modo
T *a[N]; -- a is an N-element array of pointer to T
T (*a)[N]; -- a is a pointer to an N-element array of T
T *f(); -- f is a function returning pointer to T
T (*f)(); -- f is a pointer to a function returning T
Esto se sigue de la gramática (tomar . N de Harbison & Steele, quinta ed, apéndice B):
declarator: pointer-declarator direct-declarator pointer-declarator: pointer direct-declarator pointer: * type-qualifier-listopt * type-qualifier-listopt pointer direct-declarator: simple-declarator (declarator) function-declarator array-declarator function-declarator: direct-declarator (parameter-type-list) direct-declarator (identifier-listopt) array-declarator: direct-declarator [ constant-expressionopt ] direct-declarator [ array-qualifier-listopt array-size-expressionopt ] direct-declarator [ array-qualifier-listopt * ]
También: 'cdecl> explicar int (* cosa) [5] - cosa> declare como puntero a la matriz 5 de int ' Esto le da al puntero a una matriz de 5 ints acerca de los cuales preguntó. –