char s, sf = 'f'; // инициалдау тек sf-ке қатысты char t (54);
float c = 0.22, x(3), sum;
Егер инициалдаушы мəннің типі айнымалы типімен сəйкес келмесе, белгілі ережелер бойынша типтерді түрлендіру орындалады (3-қосымша жəне 32 б.). Тип пен жады класынан басқа айнымалы сипаттамалары айқын түрде не- месе келісім бойынша оның əрекет ету аймағын береді. Жады класы жəне əрекет ету аймағы тек сипаттаманың өзіне ғана емес, сонымен қатар оның про-
грамма мəтініндегі орналасуына да тəуелді болып келеді.
Идентификатордың əрекет ету аймағы – идентификатормен байланысқан жады аймағын пайдалану (онымен қатынас құру) үшін осы идентификатордың өзін қолдануға болатын программа бөлігі. Əрекет ету аймағына байланысты айнымалы жергілікті (локалды) немесе ауқымды (глобалды) болуы мүмкін.
Егер айнымалы блок ішінде анықталған болса (блок жүйелі жақшамен қоршалып тұрады), ол жергілікті айнымалы болып табылады да, оның əрекет ету аймағы сипатталу нүктесінен блок соңына дейінгі аралықты қамтиды. Ал егер айнымалы кез келген блоктан тыс анықталған болса, ол ауқымды ай- нымалы болып саналады да, оның əрекет ету аймағы болып осы айнымалы анықталған сипаттау нүктесінен файл соңына дейінгі аймақ есептеледі.
Жады класы программалық объектінің (жеке жағдайда, айнымалының) өмірлік уақытын, яғни пайдаланылу кезеңін жəне көріну аймағын анықтайды. Егер жады класы айқын түрде көрсетілмесе, оны компилятор жариялану мəтініне тəуелді түрде (контекстіне байланысты) анықтайды.
Айнымалының өмірлік кезеңі (уақыты) тұрақты (программаны орындап біткенше) жəне уақытша (блокты орындап біткенше) болуы мүмкін.
Идентификатордың көріну аймағы деп идентификатормен байланысты жады аймағына қарапайым қатынас құру мүмкін болатын программа мəтінінің бөлігін айтады. Көбінесе идентификатордың көріну аймағы оның əрекет ету аймағымен бірдей болып келеді. Мұндағы ерекше жағдай – ішкі блокта да дəл осындай атпен сипатталатын айнымалы болған кезде туындайды. Мұндайда сыртқы айнымалы ішкі блоктың əрекет ету аймағына кіргенменен, ол онда, яғни ішкі блокта көрінбейді. Дегенмен, егер бұл айнымалы ауқымды болса, онда оның көріну аймағына қатынас құру операциясын :: пайдалана отырып, оны қолдана беруге болады.
Жады класын беру үшін келесі спецификаторлар қолданылады:
auto – автоматтық айнымалы. Ол үшін жады стектен бөлінеді жəне қажет болғанда айнымалының анықтамасы орналасқан оператордың əрбір орындалуы кезінде ол инициалданып отырады. Жадыны босату айнымалы
сипатталған блоктан шығатын кезде орындалады. Оның өмірлік кезеңі – сол айнымалы сипатталған сəттен блок соңына дейінгі аралық болып табылады. Ауқымды айнымалылар үшін бұл спецификатор қолданылмайды, ал жергілікті айнымалылар үшін ол алдын ала келісім бойынша қабылданады, сондықтан оны айқын түрде берудің онша қажеті жоқ.
extern – айнымалы программаның басқа жерінде (басқа файлда не- месе мəтiннің төменгі бөлігінде) анықталатынын көрсетеді. Олар өздері жарияланған программаның барлық модульдерінде қолдануға болатын айны- малыларды құру үшін қолданылады1. Сыртқы айнымалыларды қолдану тура- лы толығырақ «Сыртқы жарияланымдар» бөлімінде айтылады, 104 б.
static – статикалық айнымалы. Өмiрлік кезеңі – тұрақты. Ол айны- малының анықтамасы орналасқан оператордың алғашқы орындалуы кезінде бір рет инициалданады. Сипаттау операторының орналасуына байланысты статикалық айнымалылар жергілікті немесе ауқымды болуы мүмкін. Ауқымды статикалық айнымалылар өздері сипатталған модульде ғана көрінеді (яғни пайдаланылады).
Достарыңызбен бөлісу: |