Kiedy uruchomić poniższy kod, to działa dobrze dla C:Dlaczego mogę używać zmiennej o kwalifikacjach stałych jako rozmiaru tablicy w C?
#include<stdio.h>
int main(void)
{
const int x=5;
char arr[x];
printf("%d",sizeof(arr));
}
Ale nie tylko miał czytałem wcześniej, że const
zmienne wykwalifikowanych nie są real
stałe (dlatego nie mogą one być stosowane w case
warunku switch-case
), ale ten Link z IBM potwierdza, że (IBMLINK) i mówi:
const int k = 10;
int ary[k]; /* allowed in C++, not legal in C */
Dlaczego więc wolno mi użyć const
wykwalifikowanego zmiennej w C a s rozmiar tablicy bez żadnego błędu?
Twój link IBM jest nieaktualny ze standardem C. Zamiast tego użyj odniesienia C, które zostało zaktualizowane w ciągu ostatnich 14 lat. – Lundin
Zmieniłem tytuł i tekst z "indeksu" na "rozmiar". Termin index jest używany tylko wtedy, gdy używasz tablicy do wskazania jednego konkretnego członka. W deklaracji lub definicji deklarujesz rozmiar obiektu jako całości. –