Tablica dwu wymiarowa w c
Ostatnio zmodyfikowano 2017-08-08 13:24
adi1525 Temat założony przez niniejszego użytkownika |
Tablica dwu wymiarowa w c » 2017-08-08 12:25:36 Witam, mam problem z wypisywaniem tablicy wskaźników, gdy podaje tablicę jako argument funkcji console() to pokazuje mi pierwszą literę drugiego elementu. Gdy chce to samo zrobić bez wywoływania funkcji, tylko za pomocą printf("Wypisz: %c\n",(*++tekst)[0]), dostaje błąd: "|11|error: lvalue required as increment operand|. Szukałem rozwiązania i dalej nie wiem jak mam sformułować *++tekst[0] żeby dostać pierwszą literę drugiego wyrazu. int main( int argc, char * argv[] ) { char * tekst[] = { "Styczeń", "luty", "marzec", "kwiecien" }; console( tekst ); return 0; } void console( char * tab[] ) { printf( "Wypisz: %c\n",( *++tab )[ 0 ] ); }
|
|
Monika90 |
» 2017-08-08 12:42:57 najprościej będzie printf( "Wypisz: %c\n", tekst[ 1 ][ 0 ] );
i już. |
|
adi1525 Temat założony przez niniejszego użytkownika |
» 2017-08-08 12:46:37 No tak też miałem, ale chciałbym się dowiedzieć dlaczego przez argument funkcji to działa a normalnie nie. |
|
Monika90 |
» 2017-08-08 12:57:27 tekst to tablica, a tab to wskaźnik, pomimo że z deklaracji wynikałoby że to tablica. Jak kompilator widzi parametr funkcji postaci T x[] to sobie go zamienia na T* x. Operacja ++ ma sens dla wskaźnika, dla tablicy nie. |
|
adi1525 Temat założony przez niniejszego użytkownika |
» 2017-08-08 13:24:40 A dobra, już rozumiem. Dzięki ;) |
|
« 1 » |