const char * const * array
Ostatnio zmodyfikowano 2017-08-10 16:25
Anim Temat założony przez niniejszego użytkownika |
const char * const * array » 2017-08-09 15:37:58 Przeglądając dzisiejsze wpisy z forum napotkałem taki twór: const char * const * array;
, którego użyła @Monika90 do wytłumaczenia problemu "Jak uproscic iterowanie po tablicy statycznej?" I chciałbym spytać: co to w ogóle oznacza? ^^ może @Monika90 ;> |
|
garlonicon |
» 2017-08-09 17:45:34 typedef const char * raz; typedef raz const dwa; typedef dwa * trzy; Którego typu nie rozumiesz? Raz, dwa czy trzy? |
|
pekfos |
» 2017-08-09 18:10:48 consttyp wskazywany * constwskaźnik. Nie ma tu nic do rozumienia. char const * p; char const * const p; char const * const * p; char const * const * const p;
Każdy const jest opcjonalny, więc jeśli musisz, to możesz nawet mieć i tak: char * const *** const * const ** const * const *** const x;
|
|
Anim Temat założony przez niniejszego użytkownika |
» 2017-08-10 09:11:31 @pekfos dzięki bardzo :)
@garlonicon jesteś typem nauczyciela, który nie lubi swojej pracy i uczniowie go wkurzają, co nie? |
|
garlonicon |
» 2017-08-10 16:25:10 jesteś typem nauczyciela, który nie lubi swojej pracy |
1. Możliwe, że zbyt ostro potraktowałem regułę dotyczącą unikania gotowych rozwiązań i dawania pojedynczych wskazówek prowadzących do celu. 2. Lubię swoją pracę. Gdyby było inaczej, to nie zajmowałbym się programowaniem na siłę. Niby dlaczego? Po prostu chciałem wiedzieć, która część wyrażenia sprawia problem, więc rozłożyłem to na trzy oddzielne części. Zwykle chodzi o stałe wskaźniki, ale wolałem się upewnić. Przy tak postawionym pytaniu równie dobrze mogłeś nie zrozumieć, co oznacza samo const char * . A co do samych typów, to czasami lepiej użyć typedef (a najlepiej auto , jeśli się da) aby uprościć sobie życie. Natomiast jeśli chodzi o stałe, to powinno się wstawiać const wszędzie, gdzie coś się nie zmienia (zgodnie z regułą const correctness). Są języki, w których wszystko jest domyślnie stałe, dopóki programista nie napisze jawnie, że chce coś zmieniać, jednak w C++ na razie trzeba ciągle pamiętać o wklepywaniu const we właściwych miejscach. |
|
« 1 » |