Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki

Czym jest w C++ zmienna zadeklarowana jako int zm1[10];?

A. tablicą łańcuchów
B. liczbą
C. tablicą liczb całkowitych
D. znakiem
Deklaracja int zm1[10]; oznacza tablicę liczb całkowitych, czyli zestaw 10 elementów typu int zapisanych pod jedną nazwą zm1. W C++ nawiasy kwadratowe po nazwie zmiennej mówią, że nie tworzysz pojedynczej zmiennej, tylko tablicę o określonym rozmiarze. Elementy takiej tablicy indeksuje się od zera, więc dostępne pozycje to zm1[0], zm1[1], aż do zm1[9]. To jest ważne praktycznie, bo próba użycia zm1[10] wychodzi już poza zakres tablicy i może dać trudne do wykrycia błędy. Zgodnie z zasadami języka C++ elementy klasycznej tablicy są ułożone w pamięci ciągle, jeden za drugim, co bywa użyteczne przy algorytmach, sortowaniu albo pracy z danymi liczbowymi. Moim zdaniem dobrze od razu kojarzyć taki zapis z listą wartości, np. ocen, wyników pomiarów albo liczników. W nowoczesnym C++ często zaleca się też używanie std::array<int, 10> dla stałego rozmiaru albo std::vector<int> dla rozmiaru zmiennego, bo są bezpieczniejsze i wygodniejsze, ale sama deklaracja int zm1[10]; nadal oznacza dokładnie tablicę 10 liczb całkowitych.
W tej deklaracji łatwo pomylić kilka pojęć, zwłaszcza jeśli patrzy się tylko na słowo int albo tylko na nawiasy kwadratowe. Sam typ int rzeczywiście oznacza liczbę całkowitą, ale zapis int zm1[10]; nie tworzy jednej liczby. Gdyby chodziło o pojedynczą zmienną liczbową, wystarczyłoby int zm1;. Dopiero fragment [10] zmienia znaczenie deklaracji i mówi kompilatorowi, że ma zarezerwować miejsce na dziesięć elementów tego samego typu. To taki typowy haczyk składniowy w C i C++, trochę nieintuicyjny na początku nauki. Nie jest to też znak, ponieważ znak w C++ zwykle deklaruje się typem char, na przykład char litera;. Typ int przechowuje wartości całkowite, a nie pojedyncze symbole tekstowe, choć technicznie znaki też mają kody liczbowe, co czasem miesza w głowie. Deklaracja nie oznacza również tablicy łańcuchów. Łańcuch tekstowy w stylu C to najczęściej tablica znaków char, a w nowoczesnym C++ wygodniej używa się typu std::string. Żeby mieć tablicę napisów, należałoby użyć na przykład std::string napisy[10];, a nie int. Dobra praktyka jest taka, żeby czytać deklarację całościowo: typ elementu stoi przed nazwą, a nawiasy kwadratowe określają liczbę elementów tablicy. Wtedy od razu widać, że zm1 to zbiór dziesięciu wartości typu int, a nie pojedyncza wartość ani tekst.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.