Я только что написал следующий код и работает с g++
. Это не должно работать. Почему он работает?Код обзора: const char * modify
#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;
}
, как это очевидно, что cstr
является const
так что изменение в линии cstr = "CPP";
не должен работать, но это работает. Зачем?
Эта программа не определена, но не по этой причине. – molbdnilo
Когда вы говорите: «Он работает с' g ++ '", вы имеете в виду, что он работает правильно или просто компилируется. Я ожидал бы сбой с ядром. –
@MartinBonner Он работает правильно. – LifelongNoob