Лекция: 30 саѓат Лаборатория: 15 саѓат С¤Ж: 45 саѓат обс¤Ж: 45 саѓат Барлыќ саѓат саны: 135 саѓат


Лекция 23. Тақырыбы: Массивтерге, кµрсеткіштерге кµрсеткіштер



бет16/24
Дата14.06.2016
өлшемі1.16 Mb.
#135127
түріЛекция
1   ...   12   13   14   15   16   17   18   19   ...   24

Лекция 23.

Тақырыбы: Массивтерге, кµрсеткіштерге кµрсеткіштер.


(1 сағат)

1.Массивтерге кµрсеткіш

2. Кµрсеткіштерге кµрсеткіш

3. Қатар көрсеткіштері


Пайдаланылатын әдебиеттер:

а) негізгі

1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000

2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,

Си, Паскаль”, М.: 2001



б) қосымша

3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996

4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999

1.Массивтерге кµрсеткіш

Кµрсеткіштер мен массивтер бір-бірімен логикалыќ байланысты. Массив атауы – константа екені белгілі. Ал б±л константа мєні – массивтіњ 1-ші элементініњ адресі. Сондыќтан да, массив атауынын мєні меншіктеу не басќа да операторлар арќылы µздін алмайды.

Мысалы : float типтін ft массиві берілсін:

2. define 1 20

float + ft [I] ;

float + pf;

Келесі ќатарда жогарыда ањыќталѓан pf кµрсеткішіне массивтіњ 1-ші элементініњ адресі меншіктеледі .

Pf = ft;


Б±л µрнекті мына т‰рде де жазуѓа болады: pf= & ft[o];

Ал келесі µрнектер кµрсеткіш float типті айнымалар адресін саќтау ‰шін аныќталса да ќате болып табылады :

Ft = pf;

& ft [o]=pf;

10= pf ; деп жазуѓа болматындыѓы сияќты жоѓарындаѓы

µрнек те маѓынасыз.


2. Кµрсеткіштерге кµрсеткіш.

С/С++ программаларында басќа кµрсеткіштергі кµрсеткіш ќуруѓа болады.¤з кезегінде басќа кµрсеткіштер айнымалылар адресін меншіктелейді.

Б±л процесс келесі суретке кµрсетілген :


10110 1986 10

[1011] [1011] [1986]
PPIPI кµрсеткішіне кµрсеткіш, PPI-њ мєні рі кµрсеткішініњ адресіне тењ .

Кµрсеткішке кµрсеткішті пограммада сипаттау ‰шін ** белгісін

Ќолданалады: іn+**ppi;

Осылайша ж±лдызшалар саны жанама адрестеу денгейін білдіреді . Жанама адрестеу денгейі соњѓы айнымалыныњ мєнін алу ‰шін ќанша кµрсеткішті ашу керектігін білдіреді .

Тµменде єрт‰рлі жанама адрестеу денгейдегі кµрсеткіштер келтірілген :
In+ I =10; pi =& I;

In+ * pi; ppi=& pi;

In+ ** pii; ppp =&ppi;

In+ *** pppi;

i pi ppi pppi

10 1111 2222 3333


[1111] [2222] [3333] [4444]
Бұл мысалдан көрініп тұрғанындай қалауымызша кезкелген деңгейдегі көрсеткіштер құруға болады екен.

5-ші қатарда бірінші деңгейдегі көрсеткіш pi-ге і айнымалының адресі меншіктеледі. Енді і айнымалысының мәнін * pi арқылы алуға болады.

6-қатарда 2-ші деңгейлі көрсеткіш ррі-ге рі-көрсеткішінің адресі меншіктеледі (рі-ң мәні емес). Бұл жағдайда і айнымалысының мәнін (10) **рі өрнегі арқылы ала аламыз.

С++ программасында көрсеткіш сипаттамасында-ақ басқа айнымалы адресін меншіктеу операциясын (амалын) орындауға болады. (Инициализация)


int ***pppi=&ppi;
3.Қатар көрсеткіштері

Қатарлық константалар шын мәнінде соңы нольдік символмен аяқталатын символдық массив болып табылады. Қатар көрсеткіштерін төмендегіше сипаттап және инициализация жасауға болады:


char *psz=”Файл не найден”;


Ф

а

й

л




н

е




н

а

й

д

е

н

\0

{1110]








































[1124]

(Жадыдағы символдар қатарының көрінісі)
Бұл өрнекте char типті psz көрсеткіші құрылып, оған қатардың 1-ші символының (Ф әрпі) адресі меншіктеледі.

psz


1110




Ф

а

й

л




н

е




н

а

й

д

е

н

\0

[7163]




{1110]








































[1124]

Жоғарыда келтірілген өрнекті мына үлгіде де жазуға болады:


char *psz;

psz=” Файл не найден”;


Қатар көрсеткіштері мен символдық массивтерді қолдануда кейбір қателіктер жиі кездеседі. Айталық:

char *psz=”Файл не найден” ;

char *pszarray[]=”Файл не найден” ;
берілген 2 өрнекте көрсеткіш psz мен массив pszarray арасындағы айырмашылық мынада: psz көрсеткіш айнымалының мәні өзгеруі мүмкін, ал pszarray массив атауы константа болғандықтан мәні өзгермейді. Сондықтан келесі жазылған қатар қате деп есептеледі.
char pszarray[15];

pszarray =”Файл не найден” ;





Достарыңызбен бөлісу:
1   ...   12   13   14   15   16   17   18   19   ...   24




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет