Vergleich von char zu Int in c++

in c++, ist es in Ordnung, zu vergleichen, ein int in ein char aufgrund von impliziten Typumwandlung? Oder bin ich Missverständnis, das Konzept?

Kann ich zum Beispiel tun,

int x = 68;
char y;
std::cin >> y;
//Assuming that the user inputs 'Z';
if(x < y) 
{
 cout << "Your input is larger than x";
}

Oder müssen wir zuerst konvertieren Sie es in einen int?

so

 if(x < static_cast<int>(y)) 
{
 cout << "Your input is larger than x";
}
Vorsicht, dass es zulässig ist, dass sizeof(int) == 1 und dass char ist unsigned, in dem Fall für beide Seiten umgewandelt unsigned int. Das ist ungewöhnlich, obwohl.
Bitte vermeiden Sie die magischen zahlen, zu schreiben, was du meinst: Nicht 68 sondern 'D'. Auch wenn sizeof(int)>1, hüten Sie sich vor der Implementierung definiert Fehler von char.

InformationsquelleAutor user3029001 | 2014-04-05

Schreibe einen Kommentar