Inicjalizacja zmiennej

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 edytuj

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

Bibliografia edytuj

Zobacz też edytuj