Napisałem ten program w C++ i nie jestem w stanie zrozumieć, dlaczego w trzecim oświadczeniu cout
drukuje 1
.Dlaczego operator dopełniania nie działa, gdy bool = true?
#include<iostream>
using namespace std;
int main()
{
bool b = false;
cout << b << "\n"; // Print 0
b = ~b;
cout << b << "\n"; // Print 1
b = ~b;
cout << b << "\n"; // Print 1 **Why?**
return 0;
}
wyjściowa:
0
1
1
Dlaczego nie drukuje
0
1
0
Naprawdę nie wiem, dlaczego ktoś głosuje zamknąć. – vikiiii
+1 @vikiiii - Niestety, przegłosowanie i głosowanie na zakończenie to słabe punkty stosu zmian, uważam, że dzieje się to w sposób anonimowy. – Sabuncu
Więc w zasadzie używasz niewłaściwego operatora i zastanawiasz się, dlaczego daje ci to, czego się nie spodziewałeś? – szx