Inicjalizacja „wskaźnika do tablicy liczb całkowitych”
int (*a)[5];
Jak możemy zainicjować wskaźnik do tablicy 5 liczb całkowitych pokazanej powyżej.
Czy poniższe wyrażenie jest poprawne?
int (*a)[3]={11,2,3,5,6};
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
int x[5];
Następnie możesz wykonać
Aby uzyskać dostęp do elementów tablicy, należy:
(* a) [i]
(==(* (& amp; x)) [i]
== (* & amp; x) [i] ==x [i]
) nawiasy są potrzebne, ponieważ[]
ma pierwszeństwo przed w celu uzyskania dostępu do elementów tablicy). [/code]Zrozum, o co prosiłeś o błąd w czasie kompilacji:int (*a)[3] = {11, 2, 3, 5, 6};
To jest niepoprawne, a także niezgodność typów, ponieważ można przypisać do
int a [5];
i przypisujesz < code> int (* a) [3] .Dodatkowo,
Możesz zrobić coś takiego dla jednego wymiaru:
int *why = (int p[2]) {1,2};
Podobnie w przypadku 2D spróbuj tego (dzięki @
caf
https://stackoverflow.com/users/134633/caf
):
Anonimowy użytkownik
Potwierdzenie od:
lista
inicjatory, a nie tablica, więc nie możesz jej wskazać. Wskaźnik tablicy musi wskazywać tablicę, która ma prawidłową lokalizację w pamięci. Jeśli tablica jest nazwaną zmienną lub tylko fragmentem przydzielonej pamięci, nie ma to znaczenia.
Wszystko sprowadza się do wybranego typu tablicy. Istnieją różne sposoby deklarowania tablic w języku C, w zależności od celu:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
a następnie uzyskujesz dostęp do zawartości tablicy, jak w:
(*arr)[0] = ...