int *q;
char *p;
p = (char*)malloc(sizeof(char));
q = (int*)malloc(sizeof(int));
p="string";
cout<<q<<endl;
cout<<p<<endl;
Почему указатель на строку содержит в себе не адрес начального бита выделенной памяти а саму строку? Почему если мы объявили char *p; указатель p, то мы можем присваивать ему строку p="adasdas"; Это сделано ради удобство, но получается нет никакой строгости? Это исключение или я правила плохо знаю?