R. 43 - nie rozumiem działania programu - podwójny cout
Ostatnio zmodyfikowano 2019-01-28 14:31
rottingham Temat założony przez niniejszego użytkownika |
R. 43 - nie rozumiem działania programu - podwójny cout » 2019-01-28 13:12:52 Cześć! Napisałem taki oto program i trochę zaskoczył mnie on danymi wyjściowymi. Możecie mi powiedzieć co oznacza druga linijka danych w danych wyjściowych? Kod: int main() { int tab[ 2 ] = { 3, 4 }; cout << tab[ 0 ] << endl << cout << tab[ 1 ] << endl; cout << tab + 1 << endl; cout << tab << endl; }
Dane wyjściowe: 3 0x4c68644 0x6dfedc 0x6dfed8
Pozdrawiam! EDIT. Już zauważyłem, że przyczyną jest podwójny cout. Co w takim razie robi podwójny cout? Czy to jest w jakiś sposób użyteczne? |
|
Monika90 |
» 2019-01-28 14:15:08 Jeżeli cout << cout; daje się skompilować, to znaczy że masz bardzo starą implementację biblioteki standardowej. Nie jest to w żaden sposób użyteczne, jest to efekt uboczny tego jak kiedyś implementowano konwersję do typu bool, kiedyś przez konwersję do void*, a teraz za pomocą explicit operator bool. Więc teraz nonsensowny kod już się nie skompiluje. |
|
rottingham Temat założony przez niniejszego użytkownika |
» 2019-01-28 14:19:16 Powinienem zaktualizować bibliotekę czy to dla mnie jeszcze bez znaczenia?
Korzystam z najnowszego Code::Blocks. |
|
Monika90 |
» 2019-01-28 14:28:14 Może po prostu nie masz włączonego standardu C++11 lub nowszego. Więc wystarczy to gdzieś włączyć w IDE. |
|
rottingham Temat założony przez niniejszego użytkownika |
» 2019-01-28 14:31:44 Dokładnie tak było.
Dzięki za pomoc. |
|
« 1 » |