Co oznacza przypisanie tablicy do adresu wskaźnika?

0
char *wsk = linijka[3];
    linijka[3] = linijka[6];
    linijka[6] = wsk; 

Mógłby ktoś objaśnić co robi 3 linijka kodu ?
Bo 1 linijka dla wskaźnika wsk nadaje adres linijka[3]
2 linijka nadaję taką samo wartość dla linijki[3] jak dla linijka[6]

a 3 linijka ? dla linijka[6] nadaję adres wsk ?

1

Jeżeli to poprawny kod nie generujący błędów lub ostrzeżeń to w tablice wierzy o nazwie linijka wymieniasz wiersz 4-ty z 7-mym

0

http://ideone.com/cmRaRj
Wygląda jak operacja swap na elementach tablicy 3 i 6.

a 3 linijka ? dla linijka[6] nadaję adres wsk ?
linijka[6] dostaje wartość zmiennej wsk, która jest adresem na jakiś znak.

1

Fajnie by było gdybyś pokazał czym jest linijka. Założę, że jest to

char* linijka[7] = {};
nowicjusz35 napisał(a):

a 3 linijka ? dla linijka[6] nadaję adres wsk ?

Przypisujesz wartość wsk (oryginalnie linijka[3]) do linijka[6]. W całych trzech liniach zamieniasz wartości linijka[3] i linijka[6]

0

chodzi o to żeby linijka[3] i linijka[6] zamienić wartościami, ale nie mogę zrozumieć co robi ta 3 linijka w kodzie.
linijka jest tablicą wskaźników.

3

Po kolei.

int tab[7] = {};
int temp = tab[3];
tab[3] = tab[6];
tab[6] = temp;

Wszysto jasne?

typedef int T;
T tab[7] = {};
T temp = tab[3];
tab[3] = tab[6];
tab[6] = temp;

wciąż?

typedef char* T;
T tab[7] = {};
T temp = tab[3];
tab[3] = tab[6];
tab[6] = temp;

a teraz? Bo następne i poprzednie to dokładnie to samo:

char* tab[7] = {};
char* temp = tab[3];
tab[3] = tab[6];
tab[6] = temp;
1

Wskaźnik jest też zmienną, więc ma jakąś wartość.

TYP tab[10];
TYP wsk;
tab[6] = wsk;

Ten kod robi dokładnie to samo w przypadku gdy TYP to int jak i w przypadku gdy TYP to char*. Przypisanie to przypisanie, byle typ się zgadzał.
To co jest wartością wsk w Twoim przypadku to jest jakiś adres. Ale to nie jest adres wsk, bo jego adres to &wsk.

1 użytkowników online, w tym zalogowanych: 0, gości: 1