¿Qué hace el asterisco en C?

¿Qué significa el * en C? Veo que se usa al declarar una variable char o FILE ( char = *test ) ¿Cómo cambia eso el comportamiento de una variable?

Este tipo de * se llama “operador de direccionamiento indirecto”, y *test significa “obtener los datos desde donde los puntos de test del puntero”.

char está reservado para su uso como palabra clave, por lo que char = *test no se comstackrá a menos que char esté definido como una macro.

Se hace referencia a un puntero:

 *ptr = 42; // access the value that ptr points to, and set it to 42 

o declara un puntero:

 int* ptr; // the type of ptr is pointer to int