Różnica między tablicą a wskaźnikiem [duplikat]

To pytanie ma już tutaj odpowiedź:

Dlaczego zapisywanie do literału łańcuchowego w tym programie C ulega awarii? 6 odpowiedziCo jest nie tak z moim Strcpy? [Zamknięte] 4 odpowiedzi

Wczoraj miałem mały problem z domową funkcją „strcpy”. To działa teraz, ale jestem trochę zmieszany!

char* a = "Hello, World!"; //Works
char b[] = "Hello, World!"; //Works also

strcpy(a, "Hello!"); //Segmentation fault
strcpy(b, "Haha!!"); //Works..

Gdzie jest różnica? Dlaczego wskaźnik znaków powoduje „błąd segmentacji”?

Dlaczego to działa? :

char* a = "Haha"; //works
a = "LOL"; //works..

questionAnswers(2)

yourAnswerToTheQuestion