Mam kolejne podstawowe pytanie. Muszę podać wartość i mam takie zadania: 1. int a[]=(3, 2, 1); printf("Value=%1d", (*a)++); Jak rozumiem ten program ma tablicę o 3 elementach i wyświetla komunikat "Value=4" ? Bo ta gwiazdka *a oznacza, że bierze z tej tablicy, a podwójny plus dodaje 1 do ilości elementów robiąc 4 ? Dobrze myślę ?
1. a to wskaźnik do pierwszego elementu tablicy. (*a) "wyciąga" wartość z tego wskaźnika. ++ zwiększa wartość o 1 natomiast wartość samego wyrażenia to wartość tego co jest przed ++, Zatem wyprintuje ci po prostu 3. 2. Tu już jest dziko, ale na mój gust powinno wypisać wskaźnik do tego "stringa" i 0, bo *(c+2) to to samo co c[2]. Czyli mamy 'a'-'a'. W takiej sytuacji C po prostu odejmie kody znaków.
1.
int a[]=(3, 2, 1);
printf("Value=%1d", (*a)++);
Jak rozumiem ten program ma tablicę o 3 elementach i wyświetla komunikat "Value=4" ? Bo ta gwiazdka *a oznacza, że bierze z tej tablicy, a podwójny plus dodaje 1 do ilości elementów robiąc 4 ? Dobrze myślę ?
2.
2. Tu już jest dziko, ale na mój gust powinno wypisać wskaźnik do tego "stringa" i 0, bo *(c+2) to to samo co c[2]. Czyli mamy 'a'-'a'. W takiej sytuacji C po prostu odejmie kody znaków.