Amit a megoldáshoz írtál, ott nem látszik, miért fordul mássá a két kód, ami az általad idézett példában egyformának tűnik. Fontos lenne a körülmények tálalása is. Ezért:
char array_place[100] = "don't panic";
char* ptr_place = "don't panic";
int main()
{
char a = array_place[7];
char b = ptr_place[7];
return 0;
}