I just wrote following code and it's working with g++. It shouldn't work. Why is it working?
#include <iostream>
using namespace std;
int main()
{
        //char const *cstr;
        const char *cstr;
        char *cptr;
        std::cin>>cptr;
        cstr = cptr;
        cstr = "CPP";
        cout<<cstr;
        return 0;
}
as it is apparent that cstr is const so it's modification in line cstr = "CPP"; should not work, but it is working. Why?
 
     
     
     
    