Jaki jest prawidłowy sposób zdefiniowania tablicy w c? Następująca konstrukcja nie działa, kompilator podaje błąd „Oczekiwane wyrażenie”:
#include <iostream>
#include <unistd.h>
#define Lookup[9][] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"}
Odpowiedzi:
2 dla odpowiedzi № 1Prawidłowy sposób na zdefiniowanie i zainicjowanie tablicy to
char Lookup[][3] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"};
Każdy element tablicy Lookup
sam jest kolejną tablicą 3 bajtów. Licząc z terminatorem zerowym, wystarczy miejsca na łańcuchy o długości 2 znaków.
Liczba elementów w tablicy jest dostępna wraz z wyrażeniem sizeof Lookup / sizeof *Lookup
, jak w
int k;
for (k = 0; k < sizeof Lookup / sizeof *Lookup; k++) {
printf("element at index %d: %sn", k, Lookup[k]);
}
2 dla odpowiedzi nr 2
Aby zdefiniować tablicę int
, na przykład:
int int_array[10];
Aby zdefiniować i zainicjować tablicę int
:
int int_array[] = { 1, 2, 3, 4, 5 };
Określenie liczby elementów jest opcjonalne, jeśli zainicjujesz tablicę.