C/Wskaźniki - więcej: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Nie podano opisu zmian
Po pierwsze: Użyty sposób jest w dalszej części odradzany, po drugie: edytowany jest fragment pamięci nie należący co tablicy, a znajdujący się tuż za nią.
Linia 169:
{
int tablica[5] = {1, 2, 3, 4, 5};
func(&tablica[5]+4);
return 0;
}
</source>
 
{{Uwaga|Zwróćmy uwagę na wywołanie <tt>func(tablica '''<big>+</big>''' 54)</tt>. Należy pamiętać, by do funkcji przekazać adres elementu a nie sam element. Robi się to inaczej niż w przypadku pojedynczych zmiennych - używamy operatora dodawania '''+'''. Jak on działa dla tablic? Pobierany jest adres pierwszego elementu i jest zwiększany na odpowiedni indeks. Tak więc by uzyskać adres pierwszego elementu tablicy wystarczy napisać po prostu <tt>tablica</tt>.}}
{{infobox|Można to też zrobić konstrukcją: <tt>&tablica[54]</tt>, ale odradzam używanie tej konstrukcji dla tablic.}}
 
Można przyjąć konwencję, że deklaracja określa czy funkcji przekazujemy wskaźnik do pojedynczego argumentu czy do sekwencji, ale równie dobrze można za każdym razem stosować gwiazdkę.