Diferencia entre “char name” y “char name ” como argumento de una función en c

Al definir una función como esta:

void myFunction(arguments){ // some instructions } 

¿Cuál es la diferencia entre usar el char[] name y el char name[] como argumento de la función? Y por qué no usar un puntero a char en su lugar.

El 1 st one ( char[] name ) no se comstackrá ya que tiene la syntax incorrecta.

Los subíndices de arrays en las definiciones de los parámetros de la implementación de una función van al nombre del parámetro (obligatorio).

La syntax correcta es la :

 char name[] 

Ejemplo:

 void p(char[]); /* prototype */ void p(char name[]) /* implementation */ { } 

Sin embargo char[] name se considerará syntax no válida.

En otros lenguajes como Java y C #, la ubicación de los corchetes [] es solo azúcar sintáctica y no afecta al progtwig de ninguna manera.

C, siendo un lenguaje antiguo, no tiene esa flexibilidad. Una matriz debe ser declarada con los corchetes después del nombre.

En cuanto a cuándo y por qué usaría un puntero, lea aquí .

Obtendrá error de comstackción.

 0.c:3:14: error: expected ';', ',' or ')' before 'a' int f(char []a){ ^ 

Es imposible comstackr un código como este:

 #include  int f(char []a){ } main(){ }