Permettetemi di mostrarvi il mio codice prima:Perché restituire un valore sconosciuto quando ho aggiunto un char alla stringa null (come "" + c)?
void testStringAdd(){
char c = '$';
string str = "";
str += c;//the same as `str = str + c;`
cout << str << "---";
cout << "size : " << str.size() << endl;
str = "" + c;//the same as `str = c + ""`;
cout << str << "---";
cout << "size : "<< str.size() << endl;
}
mi aspettavo l'uscita è:
$ --- formato: 1
$ --- formato: 1
Ma la vera uscita sul vs2013 è:
$ --- formato: 1
--- formato: 0
Questo è un fenomeno interessante, e mi chiedo perché è così strano?
nota: Se codice string str = "";
allora str == ""
restituirà true.
In realtà c'è un avvertimento emesso su questo: [_'main.cpp: 12: 8: avvertimento: offset limiti esterni della costante string'_] (http://coliru.stacked-crooked.com/a/5180c0f835abc759). –