Czy istnieje sposób na wpisanie dwuwymiarowej tablicy w C? Coś jak:Typedef dla dwuwymiarowej tablicy w C
typedef char[10][10] board;
Ten przykład nie jest kompilowany. Czy jest jakiś sposób to zrobić? Lub jakiekolwiek inne rozwiązanie?
Czy istnieje sposób na wpisanie dwuwymiarowej tablicy w C? Coś jak:Typedef dla dwuwymiarowej tablicy w C
typedef char[10][10] board;
Ten przykład nie jest kompilowany. Czy jest jakiś sposób to zrobić? Lub jakiekolwiek inne rozwiązanie?
Spróbuj tego:
typedef char board[10][10];
Następnie można zdefiniować nową tablicę jak to:
board double_array = {"hello", "world"};
To samo z:
char double_array[10][10] = {"hello", "world"};
jaka będzie nowa definicja tablicy 2 wymiarów? – user2216190
@ user2216190: czy masz na myśli "podany poprawny' typedef' z 'board', w jaki sposób utworzysz zmienne tego typu?" Jeśli tak, odpowiedzią jest 'board b;' tworzy zmienną 'b' typu' board', która jest w pełni równoważna 'char b [10] [10];' (ponieważ 'typedef' wprowadza alternatywną nazwę dla typ, a nie nowy typ). –
Po zadeklarowaniu z tablicą double_array = {"hello", "world"}; Jak uzyskać dostęp do elementów tablicy? – Rahul
typów instrukcji definicji
Instrukcja definicji typu służy do umożliwienia zdefiniowania zdefiniowanych przez użytkownika typów danych przy użyciu innych już dostępnych typów danych.
podstawowy format:
typedef existing_data_type new_user_defined_data_type;
Tak, należy do ciebie być:
typedef char board[10][10];
Można go używać jako Yu Hao powiedział, czy można z niego korzystać także ze znakami char definiuje taką tablicę 2D:
typedef char *board[10];
A następnie można zrobić, jak opisano w YU Hao. W ten sposób nie potrzebujesz sztywnego kodu liczby znaków, które chcesz użyć dla ciągów.
Z nazwą 'board', jest prawdopodobne, że typ będzie używany do reprezentowania planszy i nie będzie używany do przechowywania ciągów jako takich. To jednak drobny szczegół. Ponadto, ściśle 'typedef' nadaje nazwę (alias) istniejącemu typowi, zamiast tworzyć nowy typ. To subtelny szczegół i nie wpływa w istotny sposób na twoją odpowiedź. –
@ JonathanLeffler Cóż, tak! punkt wzięty proszę pana, to wydaje się bardziej prawdopodobne z tamtym dzięki !! – 0decimal0
czy próbowałeś: typedef char board [] [10]; ? –
Jak zdefiniowałbyś zmienną o nazwie 'board' jako tablicę 2D? Odpowiedź: 'char board [10] [10];'. Aby utworzyć "tablicę" zamiast zmiennej, użyj "klasy pamięci" 'typedef':' typedef char board [10] [10]; '. Następnie możesz utworzyć 3 plansze używając: 'board b1, b2, b3;'. Można również utworzyć tablicę tablic: 'board ab [10];'. –