Co to jest zmienna?

Człowiek

Gunnar Svanberg/Iconica/Getty Images





Zmienna to nazwa miejsca w pamięci komputera, w którym przechowujesz pewne dane.

Wyobraź sobie bardzo duży magazyn z mnóstwem półek magazynowych, stołów, półek, specjalnych pomieszczeń itp. To wszystko są miejsca, w których możesz coś przechowywać. Wyobraźmy sobie, że mamy w magazynie skrzynkę piwa. Gdzie dokładnie się znajduje?



Nie powiedzielibyśmy, że jest przechowywany 31' 2' od zachodniej ściany i 27' 8' od północnej ściany. W programowanie terminów nie powiedzielibyśmy również, że moja całkowita pensja wypłacona w tym roku jest przechowywana w czterech bajtach, począwszy od lokalizacji 123 476 542 732 w pamięci RAM.

Dane w komputerze PC

Komputer umieści zmienne w różnych lokalizacjach przy każdym uruchomieniu naszego programu. Jednak nasz program dokładnie wie, gdzie znajdują się dane. Robimy to, tworząc zmienną, która będzie się do niej odwoływać, a następnie pozwól kompilatorowi obsłużyć wszystkie niechlujne szczegóły dotyczące tego, gdzie faktycznie się znajduje. O wiele ważniejsze jest dla nas wiedzieć, jakie dane będziemy przechowywać w lokalizacji.



W naszym magazynie nasza skrzynia może znajdować się w sekcji 5 półki 3 w strefie napojów. Na komputerze program będzie dokładnie wiedział, gdzie znajdują się jego zmienne.

Zmienne są tymczasowe

Istnieją tak długo, jak są potrzebne, a następnie są usuwane. Inną analogią jest to, że zmienne są jak liczby w kalkulatorze. Jak tylko naciśniesz przycisk wyczyść lub wyłącz, numery wyświetlacza zostaną utracone.

Jak duża jest zmienna

Tak duży, jak jest potrzebny i nie więcej. Najmniejsza może być zmienna to jeden bit, a największa to miliony bajtów. Obecne procesory obsługują dane w kawałkach po 4 lub 8 bajtów na raz (32 i 64-bitowe procesory), więc im większa zmienna, tym dłużej zajmie jej odczytanie lub zapisanie. Wielkość zmiennej zależy od jej typu.

Co to jest typ zmiennej?

W nowoczesnym języki programowania , zmienne są deklarowane jako typu.



Poza liczbami, procesor nie rozróżnia danych w swojej pamięci. Traktuje to jako zbiór bajtów. Nowoczesne procesory (oprócz tych w telefonach komórkowych) zazwyczaj obsługują sprzętowo zarówno arytmetykę liczb całkowitych, jak i zmiennoprzecinkowych. The kompilator musi generować różne instrukcje kodu maszynowego dla każdego typu, więc wiedza o typie zmiennej pomaga wygenerować optymalny kod.

Jakie typy danych może przechowywać zmienna?

Podstawowe typy to te cztery.



    Liczby całkowite(zarówno ze znakiem, jak i bez znaku) o rozmiarze 1,2,4 lub 8 bajtów. Zwykle określany jako int.zmiennoprzecinkowyLiczby o rozmiarze do 8 bajtów.Bajty. Są one zorganizowane w 4 lub 8 (32 lub 64 bity) i są wczytywane i odczytywane z rejestrów procesora.Tekstciągi o rozmiarze do miliardów bajtów. Procesory mają specjalne instrukcje do przeszukiwania dużych bloków bajtów w pamięci. Jest to bardzo przydatne w przypadku operacji tekstowych.

Istnieje również ogólny typ zmiennej, często używany w językach skryptowych.

    Wariant- Może pomieścić dowolny typ, ale jest wolniejszy w użyciu.
Przykład typów danych
  • Tablice typów – jednowymiarowe jak szuflady w szafce, dwuwymiarowe jak skrzynki do sortowania na poczcie lub trójwymiarowe jak stos skrzynek po piwie. Może być dowolna liczba wymiarów, aż do limitów kompilatora.
  • Wyliczenia, które są ograniczonym podzbiorem liczb całkowitych. Czytać o co to jest wyliczenie .
  • Struktury są zmienną złożoną, w której kilka zmiennych łączy się w jedną dużą zmienną.
  • Strumienie umożliwiają zarządzanie plikami. Są formą strunowy .
  • Obiekty , są jak struktury, ale ze znacznie bardziej wyrafinowaną obsługą danych.

Gdzie są przechowywane zmienne?

W pamięci, ale na różne sposoby, w zależności od tego, jak są używane.



  • Globalnie. Wszystkie części programu mają dostęp i mogą zmieniać wartość. W ten sposób starsze języki, takie jak Basic i Fortran, używały do ​​obsługi danych i nie jest to uważane za dobrą rzecz. Współczesne języki mają tendencję do zniechęcania do globalnego przechowywania danych, chociaż nadal jest to możliwe.
  • Na stercie. To jest nazwa używanego głównego obszaru. W C i C++ dostęp do tego jest przez wskaźnik zmienne.
  • Na Stos . Stos to blok pamięci używany do przechowywania parametry przekazywane do funkcji i zmiennych, które istnieją lokalnie dla funkcji.

Wniosek

Zmienne są niezbędne do programowania proceduralnego, ale ważne jest, aby nie wiązać się zbytnio z podstawową implementacją, chyba że programujesz system lub piszesz aplikacje, które muszą działać w małej ilości pamięci RAM.

Nasze zasady dotyczące zmiennych:



  1. Chyba że jesteś ciasny na baranie lub masz duże tablice , trzymać się int zamiast bajt (8 bitów) lub krótki int (16 bitów). Zwłaszcza w przypadku 32-bitowych procesorów istnieje dodatkowa kara za opóźnienie w dostępie do mniej niż 32 bitów.
  2. Posługiwać się pływa zamiast debel chyba że potrzebujesz precyzji.
  3. Unikaj wariantów, chyba że jest to naprawdę konieczne. Są wolniejsze.