Ich habe nur folgenden Code geschrieben und es funktioniert mit g++
. Es sollte nicht funktionieren. Warum funktioniert es?Code-Überprüfung: const char * Änderung
#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;
}
wie es offensichtlich ist, dass cstr
const
ist so ist es Änderung in Zeile cstr = "CPP";
nicht funktionieren sollte, aber es funktioniert. Warum?
Dieses Programm ist nicht definiert, aber nicht aus diesem Grund. – molbdnilo
Wenn Sie sagen "es funktioniert mit' g ++ '", meinst du, es läuft korrekt oder nur, dass es kompiliert. Ich würde erwarten, mit einem Core Dump zu stürzen. –
@MartinBonner Es läuft korrekt. – LifelongNoob