que es un accidente de la sintaxis de C que se puede escribir ya sea int *i
o int* i
o incluso int * i
. Todos ellos se analizan como int (*i)
; IOW, el *
está vinculado al declarador, no al especificador de tipo. Esto significa que en las declaraciones como
int* i, j;
única i
se declara como un puntero; j
se declara como un int. Si desea declarar ambos como punteros, que tendría que escribir
int *i, *j;
más programadores de C utilizan T *p
en contraposición a T* p
, ya que a) las declaraciones en C son la expresión centradas, no objeto centradas, y b) refleja más fielmente la sintaxis de la declaración.
Como un ejemplo de lo que quiero decir con expresión centrada, suponga que tiene una matriz de punteros a int y desea obtener el valor entero en el elemento i
. La expresión que corresponde a ese valor es *a[i]
, y tipo de la expresión es int
; por lo tanto, la declaración de la matriz es
int *a[N];
Cuando vea la frase "uso imita declaración" con respecto a la programación en C, esto es lo que se quiere decir.
posible duplicado de [En C, ¿por qué es el asterisco antes del nombre de la variable, en lugar de después del tipo?] (Http://stackoverflow.com/questions/398395/), [¿Cuál es su estilo de declaración de puntero preferido, y ¿por qué?] (http://stackoverflow.com/questions/377164/) – outis