Heim > Backend-Entwicklung > C++ > Ist die Bool-Konvertierung in Int in C und C immer 0 oder 1?

Ist die Bool-Konvertierung in Int in C und C immer 0 oder 1?

Susan Sarandon
Freigeben: 2024-11-15 08:41:03
Original
443 Leute haben es durchsucht

Is Bool Conversion to Int Always 0 or 1 in C   and C?

Bool-Konvertierung in Int: Ist garantiert 0 oder 1?

In Programmiersprachen wie C und C wird Bool häufig zur Darstellung verwendet boolesche Werte von wahr und falsch. Hinter den Kulissen werden diese Werte jedoch häufig als Ganzzahlen gespeichert. Dies wirft die Frage auf: Wenn ein Bool in ein Int konvertiert wird, ist das Ergebnis garantiert entweder 0 oder 1?

C

In C lautet die Antwort ein klares Ja. Gemäß dem C-Standard (§4.5/4) „kann ein R-Wert vom Typ bool in einen R-Wert vom Typ int konvertiert werden, wobei false zu Null und True zu Eins wird.“ Das heißt, wenn ein Bool in C in einen Int umgewandelt wird, ist das Ergebnis immer 0 oder 1.

C

In C ist die Situation etwas anders aber genauso klar. Gemäß dem C-Standard (§6.3.1.2/1): „Wenn ein Skalarwert in _Bool konvertiert wird, ist das Ergebnis 0, wenn der Wert gleich 0 ist; andernfalls ist das Ergebnis 1.“ Dies bedeutet, dass, wenn ein Bool (dargestellt als _Bool in C) in ein Int konvertiert wird, das Ergebnis wieder 0 oder 1 ist.

Praktisches Beispiel

Zur Veranschaulichung Dieses Verhalten im Code:

int a = 2;
bool b = a;
int c = 3 + b; // 4
Nach dem Login kopieren

In diesem Beispiel wird die Bool-Variable b auf den Wert von int a initialisiert (was ist 2), aber da bool-Werte als 0 oder 1 gespeichert werden, wird b zu 1. Die anschließende Addition von 3 führt dazu, dass c der Wert 4 zugewiesen wird. Dies bestätigt, dass bool als 1 in int konvertiert wird, was ein Ergebnis von 0 oder garantiert 1.

Das obige ist der detaillierte Inhalt vonIst die Bool-Konvertierung in Int in C und C immer 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