一个比较奇怪的有关问题-字符与指针

一个比较奇怪的问题-------字符与指针#includeiostreamusing namespace stdint main(){char *p alex

一个比较奇怪的问题-------字符与指针
#include<iostream>
using namespace std;
int main()
{
char *p = "alex"; 
*p = 'A'; 
cout<<p;

return 0;
}
一段很简单的代码,报错啦。经查书后得知,字符串是以常量来对待的,那我就不懂了,常量不是只能赋值给const的吗?
 也就是说应该const char *p = "alex";这样才对,好像有点矛盾呢,求解释哦 

[解决办法]

引用:
谢谢,假如我想获取char *p = "alex";中'l'的地址,该怎么做呢


p是字符串的首地址,++p就是l的地址

cout <<(int *)++p ;