Я знаю про стек и кучу. Знаю про указатели.
Например char *pArr = new char [5] , это мне понятно, выделяем память в куче.
Но что это:char *cStr = "string";
Где тут выделяется память - в куче или стеке?
Почему тут не работает delete ?
Почему при выводе, например
std :: cout << cStr ;
Выводится "string" , то есть значение, а не адрес значения как обычно с указателями ?
Почему при сравнении, например таком:
char *a = "str" ;
char *b = "str" ;
std :: cout << ( a == b ) ; /// true , но как?
Сравнивается значение ? Это ведь указатели, или ?