Richarllison, a explicação para esta diferença depende de tópicos mais avançados da linguagem C, que são vetores e ponteiros.
Ao declarar uma string como char sit[10]
estamos pedindo ao computador para reservar 10 espaços de caracteres na memória, criando um vetor. Em C, não é possível fazer atribuições de valores a vetores por definição da linguagem.
Já em char *sit
estamos declarando um ponteiro, isto é, uma variável que armazena um endereço de memória. A atribuição é permitida aqui pois ela faz com que a variável sit
aponte para o endereço de memória onde a string "Aprovado"
ou "Reprovado"
está armazenada.
Por mais que usar char *sit
permita a atribuição, como se trata de um tópico avançado que pode causar muitos erros é recomendado que use a outra forma de declarar strings.
Espero ter ajudado, quaisquer outras dúvidas basta entrar em contato.