• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

prawda czy fałsz(0 czy 1)

0 głosów
6,353 wizyt
pytanie zadane 17 marca 2017 w C i C++ przez seba Dyskutant (8,900 p.)
Witam otóż mam pytanie co jest prawdą 0 czy 1. W pętli wiem że 1 oznacza prawdę czyli wykonuje się w nieskończoność. Zaś return 0; oznacza zwróć prawdę. I teraz nie wiem co jest prawdą.

3 odpowiedzi

+2 głosów
odpowiedź 17 marca 2017 przez mokrowski Mędrzec (158,580 p.)

W C i C++ oraz w systemach operacyjnych obowiązują 2 konwencje:

  1. C/C++ - dowolna wartość niezerowa oznacza prawdę. Tak więc 0 i wszystko co do niego można przyrównać oznacza fałsz.
  2. OS - kod powrotu z programu 0 oznacza że program wykonał się bez błędu. Dowolny nie zerowy kod oznacza kod błędu zwracany przez program.

Dzięki tej konwencji, zwracając wartość z main(), można sygnalizować w powłoce jak wykonał się program. Można wtedy pisać łatwo skrypty i zestawiać programy w potoki lub wykonywać różnorodne testy.

komentarz 17 marca 2017 przez draghan VIP (106,230 p.)

yes

Dopowiem tylko, że powszechnie używa się konwencji 1==prawda, 0==fałsz - nie tylko w C/C++.

seba:
Wartość 0 zwrócona z funkcji głównej do systemu operacyjnego nie oznacza 'prawdy', tylko poprawne wykonanie - to drobna różnica. ;) Kod zerowy jest tylko jeden, zaś niezerowych całkiem sporo - stąd 0 może oznaczać poprawne wykonanie (program wypełnił swoją funkcję jak trzeba), zaś cała gama pozostałych kodów może posłużyć do sygnalizacji najróżniejszych błędów. Wydaje się to całkiem logiczne. :)

0 głosów
odpowiedź 17 marca 2017 przez 10kw10 Pasjonat (22,880 p.)
Co jest prawda :D

To zalezy jaki jest typ funkcji, bo jesli int to poprostu to jest liczba, a jesli bool to kazda inna liczba rozna od 0 jest uznawana jako true, a 0 to false;

0 == false;

1 == true;
komentarz 17 marca 2017 przez seba Dyskutant (8,900 p.)
Wiem ale czasem jest taka sytuacja którą widzę w kodach np w php, że jeśli numer błędu jest równy 0 to jest prawda. No bo nie wyskoczył błąd czyli prawda xD Jak tu się połapać
0 głosów
odpowiedź 17 marca 2017 przez Dorion300 Szeryf (90,250 p.)
W jakiej części programu masz ten "return 0;"?
"return 0;" nie musi oznaczać że zwraca prawdę, może po prostu zwracać int.
gdy kończysz program "return 0" oznacza że program kończy się powodzeniem i nic po drodze się nie zepsuło.
możesz także zwrócić liczbę np. 42.

dlaczego "return 0;" oznacza "zwróć prawdę" skoro zwraca liczbę 0? A zero jest "zdaniem fałszywym" jako typ bool.

Podobne pytania

0 głosów
1 odpowiedź 589 wizyt
pytanie zadane 17 kwietnia 2017 w Sieci komputerowe, internet przez Piotrek10020 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 265 wizyt
pytanie zadane 10 grudnia 2016 w C i C++ przez DODO Bywalec (2,950 p.)
0 głosów
3 odpowiedzi 746 wizyt
pytanie zadane 19 listopada 2015 w C i C++ przez RoXoR Początkujący (280 p.)

93,427 zapytań

142,421 odpowiedzi

322,648 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...