Кіріспе
Бағдарламаның өмір бойына сақталатын бағдарламалау айнымалысы. Компьютерлік бағдарламалауда статикалық айнымалы – "статикалық" түрде бөлінген айнымалы, яғни оның өмір сүру мерзімі (немесе "қолданылу аймағы") бағдарламаның толық орындалу барысындағы уақытқа дейін созылады. Бұл, қысқа мерзімді автоматты айнымалылардан өзгеше, олардың жадысы стекке бөлінеді және шақыру стегінде босатылады; сондай-ақ, объектілерден де өзгеше, олардың жадысы динамикалық түрде бөлінеді және үйме жадында босатылады. Айнамалының өмір сүру мерзімі оның қолданылу аймағынан (айнамалыны қай жерде пайдалануға болады) ажыратылады: "жаһандық" және "жергілікті" қолданылу аймағына қатысты, бірақ өмір сүру мерзіміне емес, алайда қолданылу аймағы көбінесе өмір сүру мерзімін білдіреді. Көптеген бағдарламалау тілдерінде жаһандық айнымалылар әрқашан статикалық болады, бірақ кейбір тілдерде олар динамикалық болуы мүмкін, ал жергілікті айнымалылар көбінесе автоматты болады, бірақ статикалық та болуы мүмкін. Жалпы алғанда, статикалық жадты бөлу – бұл жадты бағдарлама орындалатынға дейін, компиляция кезінде бөлу, динамикалық жадты бөлуден немесе жадты орындау кезінде қажет болған жағдайда автоматты түрде бөлуден айырмашылығы.
In computer programming, a static variable is a variable that has been allocated "statically", meaning that its lifetime (or "extent") is the entire run of the program. This is in contrast to shorter lived automatic variables, whose storage is stack allocated and deallocated on the call stack; and in contrast to objects, whose storage is dynamically allocated and deallocated in heap memory. Variable lifetime is contrasted with scope (where a variable can be used): "global" and "local" refer to scope, not lifetime, but scope often implies lifetime. In many languages, global variables are always static, but in some languages they are dynamic, while local variables are generally automatic, but may be static. In general, static memory allocation is the allocation of memory at compile time, before the associated program is executed, unlike dynamic memory allocation or automatic memory allocation where memory is allocated as required at run time.
Адрестік
Абсолюттік адрестеу режимі тек статикалық айнымалылармен ғана қолданылуы мүмкін, себебі компилятор компиляция кезінде олардың орналасқан жерін біледі. Бағдарлама (атқарылатын файл немесе кітапхана) жадқа жүктелген кезде, статикалық айнымалылар бағдарламаның адрестік кеңістігіндегі деректер сегментінде (егер инициализацияланған болса) немесе BSS сегментінде (егер инициализацияланбаған болса) сақталады, ал жүктелуге дейін объект файлдарының сәйкес бөлімдерінде орналасады.
Қолданылу аясы
Ауқымы және көлемі тұрғысынан, статикалық айнымалылар бағдарламаның орындалу барысында сақталады, бірақ олардың ауқымы шектеулі болуы мүмкін. Басты айырмашылық – жаһандық статикалық айнымалы, ол жаһандық ауқымға ие және осылайша бағдарламаның барлық бөлігінде қолданылады, ал жергілікті статикалық айнымалы жергілікті ауқымда болады. Жергілікті статикалық айнымалы, оның орналасқан функциясы қанша рет шақырылса да, бір рет қана инициализацияланады және оның мәні сақталып, сол функцияға жасалған көптеген шақырулар арқылы қолжетімді болады, мысалы, санаушы айнымалы ретінде пайдалануға болады. Статикалық айнымалы модульдік ауқымға немесе C тіліндегі ішкі байланыс сияқты басқа да нұсқаларға ие болуы мүмкін, бұл файлдық немесе модульдік ауқымның бір түрі.
Нысанға бағдарланған бағдарламалау
Объектіге бағытталған бағдарламалауда статикалық мүшелік айнымалы деген ұғым да бар, ол статикалық анықталған кластың "сынып айнымалысы", яғни белгілі бір кластың мүшелік айнымалысы болып табылады, ол барлық мысалдарда (объектілерде) ортақ және осы объектілердің мүшелік айнымалысы ретінде қолжетімді. Кластарды орындау барысында анықтауға болатын тілдерде динамикалық түрде анықталған кластың сынып айнымалысы класты анықтаған кезде бөлінеді және статикалық емес. Компиляция уақытында белгілі объекті тұрақтылары, мысалы, жол мәнділері (string literals), әдетте статикалық түрде бөлінеді. Объектіге бағытталған бағдарламалауда сыныптардың виртуалды әдіс кестелері әдетте статикалық түрде бөлінеді. Статикалық түрде анықталған мән жалпы ауқымда болуы мүмкін, бұл бірқалыптылықты қамтамасыз ету үшін орындалу барысында бірдей өзгермейтін мән қолданылатынын қамтамасыз етеді.