Inicjalizacja zmiennej

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Inicjalizacja zmiennej to konstrukcja programistyczna polegająca na nadaniu zmiennej wartości początkowej.

Rodzaje inicjalizacji[edytuj]

Nadanie zmiennej wartości początkowej może być dokonane:

Wartości inicjujące[edytuj]

W przypadku inicjalizacji zmiennej w deklaracji lub w specjalnym bloku, wartość inicjująca musi zostać zapisana w postaci:

Wynika to z faktu, że wartości te muszą być znane na etapie kompilacji. W pozostałych przypadkach, wartość ta może być wyznaczona dopiero w trakcie wykonywania programu, co skutkuje brakiem powyższych ograniczeń.

Inicjalizacje zmiennych[edytuj]

Inicjalizacja w kodzie[edytuj]

 Osobny artykuł: Przypisanie.

Inicjalizacja zmiennej w kodzie jest zwykłą konstrukcją nadania wartości zmiennej, niczym nie różniącą się od dalszych, kolejnych przypisań nowych wartości. Takie nadanie wartości następuje najczęściej w wyniku wykonania przypisania. Ta forma jest dostępna we wszystkich językach programowania, nawet jeżeli specyfika języka inaczej nazywa daną operację (innym terminem). W językach programowania, w których nie wymaga się deklarowania wszystkich zmiennych występujących w kodzie, taka inicjalizacja jest równocześnie deklaracją dynamiczną danej zmiennej, która skutkuje utworzeniem tej zmiennej z nadaną wartością początkową.

Inicjalizacja w prologu pętli[edytuj]

Taka inicjalizacja dotyczy zmiennej sterującej pętlą, w prologu tej pętli, tj. przed przebiegiem pierwszej iteracji. Takiej zmiennej przypisywana jest wartość początkowa zakresu wartości, które będą przyjmowane przez tę zmienną, przy przejściach do kolejnych powtórzeń pętli. Należy jednak zauważyć, że w wielu językach zmienna sterująca może być zwykłą zmienną, która wcześniej bierze udział w różnych obliczeniach i może mieć już nadaną wartość, nie jest już potrzebna inicjalizacja (np. C, C++). W innych językach, mimo że taka zmienna ma już nadaną określoną wartość, być może właściwą, składnia i tak wymaga inicjalizacji takiej zmiennej dla bloku instrukcji iteracyjnej (np. Pascal). I w końcu może być tak, że zmienna sterująca jest lokalna dla danej pętli i wymaga inicjalizacji (np. Ada).

Inicjalizacja parametru argumentem[edytuj]

 Osobny artykuł: Argument (informatyka).

Inicjalizacja zmiennej powstałej podczas wywołania podprogramu i będącej określonym parametrem, zgodnie z deklaracją danego podprogramu, zależna jest od sposobu kojarzenia argumentów z parametrami formalnymi. Występuje ona w instrukcji wywołania, bądź w wywołaniu podprogramu funkcyjnego w wyrażeniu.

Inicjalizacja domyślna parametru[edytuj]

 Osobny artykuł: Argument domyślny.

Przypisanie wartości domyślnej do parametru następuje w instrukcji wywołania lub w wywołaniu funkcji, tylko w przypadku, gdy na liście argumentów nie wyspecyfikowano wartości (argumentu) odpowiadającej kolejnemu parametrowi formalnemu. Poza tym obowiązują zasady identycznej inicjalizacji takiego parametru jak wyżej (jak przy skojarzeniu argumentu z parametrem).

Inicjalizacja w specjalnym bloku, sekcji[edytuj]

Specjalna sekcja, w danym bloku kodu, służąca inicjalizacji zmiennych, jest wykonywana tylko jednokrotnie, przy pierwszym wykonaniu/wywołaniu danego bloku, sekcji. Taka konstrukcja umożliwia nadawanie wartości np. zmiennym statycznym przy pierwszym wywołaniu i zachowanie nowych, zmieniony w wyniku wykonania kodu bloku wartości, w kolejnych wykonaniach/wywołaniach danego bloku.

Inicjalizacja zmiennych w specjalnym bloku, sekcji
Język programowania Forma zapisu Przykład
Fortran DATA zm1, zm2, … zm_n /w1, w2, … w_n/ DATA A, B, C /1, 2, 3/
Icon deklaracje lokalne initial <wyrażenie | {wyrażenia}> static a initial{a=1}

Inicjalizacja w deklaracji zmiennej[edytuj]

Inicjalizacja zmiennej w deklaracji tej zmiennej jest możliwa w wielu językach programowania, choć istnieją języki, w których taka konstrukcja jest niedopuszczalna. Pewne nowsze implementacje języków, w których nie ma tej konstrukcji, mogą ją wprowadzać. Ten sposób nadawania zmiennej wartości początkowej najskuteczniej zapobiega błędom, polegającym na odwołaniu do niezainicjowanej zmiennej, tzn. takiej zmiennej, której nie nadano jeszcze wartości.

Inicjalizacja zmiennych w deklaracjach
Język programowania Forma zapisu Przykład
Ada identyfikator : typ:=wartość; a : INTEGER:=1;
C typ identyfikator=wartość; int a=1;
Clipper 5.0 deklamator identyfikator:=wartość PRIVATE a:=1
JavaScript var identyfikator= wartość; var a=1;
MASM (Makroasembler) identyfikator DYREKTYWA_TWORZĄCA wartość ZM DB 1
PL/I <DECLARE | DCL> lista_identyfikatorów atrybuty <INITIAL | INIT>(wartość); DCL A FIXED(2,0) INIT(1);
Turbo Pascal const identyfikator : typ=wartość; const a:integer=1;
C# typ indentyfikator=wartość; int a=1;
var identyfikator=wartość;[a] var a=1;
Visual Basic (Visual Studio 2008) Dim identyfikator [As typ]=wartość Dim A As Integer = 1
Dim identyfikator As New klasa Dim St As New Stack(Long)

Uwagi

  1. Konstrukcja dostępna od C# 3.0 – var (C# Reference) (ang.). MSDN. [dostęp 2012-09-30].

Bibliografia[edytuj]

  1. Ryszard K. Kott, Krzysztof Walczak. Programowanie w języku Fortran 77, Wydawnictwa Naukowo-Techniczne, Warszawa 1991, ​ISBN 83-204-1362-1
  2. Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., ​ISBN 83-85060-53-7​, ISSN 0867-6011
  3. Jan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, ​ISBN 83-204-1101-7
  4. Wojciech Rogowski, Arkadiusz Serodziński, Clipper 5.0, Wydawnictwo PLJ, Warszawa 1991, ​ISBN 83-85190-20-1
  5. Jan Bielecki, Rozszerzony PL/I i JCL w systemie OS/RIAD, Państwowe Wydawnictwo Naukowe, Warszawa 1986, Seria: Biblioteka Informatyki, ​ISBN 83-01-06146-4
  6. Ralph E. Griswold, Madge T. Griswold, Icon, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, ​ISBN 83-204-0871-7
  7. A. Nico Habermann, Dewayne E. Perry, Ada dla zaawansowanych, Wydawnictwa Naukowo-Techniczne, Warszawa 1989 r., seria: Biblioteka Inżynierii Oprogramowania, ​ISBN 83-204-1058-4

Zobacz też[edytuj]