Heim > Backend-Entwicklung > C++ > Führt die Konvertierung eines Booleschen Werts in eine Ganzzahl immer zu 0 oder 1?

Führt die Konvertierung eines Booleschen Werts in eine Ganzzahl immer zu 0 oder 1?

Linda Hamilton
Freigeben: 2024-12-01 03:39:19
Original
426 Leute haben es durchsucht

Does Converting a Boolean to an Integer Always Result in 0 or 1?

Kann ein Boolescher Wert immer Null oder Eins werden, wenn er in eine Ganzzahl konvertiert wird?

Bei der Konvertierung eines Booleschen Werts in eine Ganzzahl scheinen viele Compiler dies zu tun Behalten Sie nur 0 oder 1 bei, was Fragen zur Zuverlässigkeit dieses Verhaltens aufwirft. Sehen wir uns ein Beispiel an:

int a = 2;
bool b = a;
int c = 3 + b; // What is the result? 4 or 5?
Nach dem Login kopieren

Antwort: Ja, bool ist garantiert 0 oder 1, wenn es in eine Ganzzahl konvertiert wird.

In C:

Der C-Standard (§4.5/4) besagt ausdrücklich: „Ein R-Wert vom Typ bool kann in einen R-Wert vom Typ int konvertiert werden, wobei false zu Null und true zu Eins wird wird 0 oder 1 (§6.3.1.2/1): „Wenn ein Skalarwert in _Bool konvertiert wird, ist das Ergebnis 0, wenn der Wert gleich ist 0; andernfalls ist das Ergebnis 1.“

Bei der Konvertierung in int ist der Vorgang unkompliziert, da int 0 und 1 enthalten kann, sodass sich der Wert nicht ändert (§6.3.1.3).

Das obige ist der detaillierte Inhalt vonFührt die Konvertierung eines Booleschen Werts in eine Ganzzahl immer zu 0 oder 1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage