C: ¿por qué strcpy () es necesario

¿Puede alguien explicarme por qué strcpy () es necesario para asignar cadenas a las matrices de caracteres, como en el siguiente fragmento de código.

int main(void) {

char s[4];

s = "abc"; //Fails
strcpy(s, "abc"); //Succeeds

return 0;
}

¿Cuál es la razón por la ques = "abc" falla? ¿Y por qué strcpy () es la única forma de asignar cadenas a las matrices de caracteres después de que se hayan declarado? Me parece extraño que tengas que usar una función para realizar una tarea básica.

Respuestas a la pregunta(4)

Su respuesta a la pregunta