Големина на текста:
Обектно ориентирано програмиранегл. ас. д-р Борислав П. Стоянов
5. Масиви и указатели. Предаване на резултати чрез формални
параметри. Функции от тип указател. Формални параметри и масиви.
Указатели към функции. Стандартни функции за обработка на низове.
Тип указател
Мястото в паметта, където е записана стойността на променлива се
идентифицира с адрес на променливата. Намирането на адреса на
променливата се извършва с оператор & (and, амперсанд).
&<променлива>;
Например:
int i = 300;
cout << &i;
Извеждането на &<променлива> (адреса на <променливата>) може да се
извърши с обекта cout.
Въвеждането на данни от тип указател чрез оператор cin е невъзможно.
Указателят се свързва със стойност чрез инициализация или оператор за
присвояване.
Операторът & не може да се прилага върху константи, изрази и променливи от тип
масив.
Адресите могат да се присвояват на специален тип променливи, т.н. променливи
от тип указател или само указател.
<тип> *<указател> [=<стойност>];
В отделената за <указател> памет се записва адрес.
Например:
int x;
int *xPtr = &x;
Указателят xPtr към тип int се инициализира с адреса на x.
Следват дефиниции на указатели без инициализация:
float *yPtr;
double *zPtr;
Неинициализираните указатели имат стойност 0 или NULL (неопределена
стойност). Това позволява да се организира проверка дали даден указател е
инициализиран или не с конкретен адрес, например:
if ( !countPtr)
1
Обектно ориентирано програмиранегл. ас. д-р Борислав П. Стоянов
//ex501.cpp
#include <iostream>
using namespace std;
int main(){
int count = 5;
int *countPtr;
countPtr = &count;
cout << countPtr << endl;
return 0;
}
0012FF60
Press any key to continue . . .
Операции с указатели
Променливите от тип указател могат да участват като операнди в следните
аритметични и логически операции +, -, ++, --, ==, !=, >, >=, < и <=.
Изпълнението на аритметични операции върху указатели е свързано с някои
особености, заради което аритметиката с указатели се нарича още адресна
аритметика. Особеността се изразява в т. н. мащабиране.
int *countPtr;
......
countPtr = countPtr + 1;
Горният оператор увеличава стойността на countPtr не с 1, а с countPtr +
1*sizeof(int), където sizeof(int) е функция, която намира броя на байтовете,
необходими за записване на данна от тип int.
Указатели към void
Типът, който се задава в дефиницията на един указател, е информация за
компилатора относно начина на обработване (интерпретиране) на съдържанието
на указателя. Например, ако указателят countPtr е указател към int, то *countPtr
са два байта, интерпретирани като число от тип int, чиито начален адрес е
стойността на countPtr.
Указателите от тип void може в различни моменти да сочат към данни от различен
тип. Съдържанието на такъв указател се извлича само след привеждане на типа
на указателя (void *) до типа на съдържанието.
Указател към указател
Възможно е дефинирането на указател към указател – указател, който сочи към
друг указател.
Динамични обекти
Динамичен е този обект (променлива, масив, обект от клас), който се създава и
унищожава по време на изпълнението на програма. Заетата памет, при
създаването на динамичен обект, се освобождава при неговото унищожаване и
може да бъде използвана отново.
2
Обектно ориентирано програмиранегл. ас. д-р Борислав П. Стоянов
Динамични обекти се създават чрез оператора new, който има следния синтаксис:
<указател> = new <тип динамичен обект> [<инициализация>];
Основните типове или конструирани от потребителя данни могат да бъдат <тип на
динамичен обект>. Променливата <указател> е указател към тип, който съвпада
с типа на създавания динамичен обект.
При успешно изпълнение функцията new създава динамичен обект от посочения
тип и връща резултат (стойност на функцията) адреса на новосъздадения обект,
който се присвоява на <указател>. Ако няма достатъчно оперативната памет за
създаване на динамичния обект, то операторът new връща като резултат стойност
0 (NULL).
Унищожаването на динамични обекти се извършва с оператор delete:
delete <указател>;
Указателят към динамичния обект е <указател>. В резултат от изпълнението на
оператора delete паметта, заемана от динамичния обект, се освобождава.
Примерна програма:
//ex502.cpp
#include <iostream>
using namespace std;
int main(){
int *countPtr;
countPtr = new int(67);
cout << "Address: " << countPtr << endl;
cout << " Value: " << *countPtr << endl;
delete countPtr;
return 0;
}
Address: 00335930
Value: 67
Press any key to continue . . .
Указатели и едномерни масиви
Имената на масивите са константни указатели към техните първи елементи
индекс 0).
При условие следните декларации:
int a[5];
int *aPtr;
3

Това е само предварителен преглед

За да разгледате всички страници от този документ натиснете тук.

Обектно ориентирано програмиране - Указатели и масиви. Предаване на резултати. Функции от тип указател. Указател към функции. Стандартни функции за обработка на низове

Обектно ориентирано програмиране - Указатели и масиви. Предаване на резултати. Функции от тип указател. Указател към функции. Стандартни функции за обработка на низове...
Изпратен от:
snookerboy84
на 2010-07-26
Добавен в:
Лекции
по Програмиране
Статистика:
127 сваляния
виж още
 
Домашни по темата на материала
Да се напише програма при която в двумерен масив да се въвежда текст от 5 реда. Да се въведе един символ в променливата ch. Да се определи колко пъти се среща символът ch в текста и на какви места.
добавена от venelinvasilev 27.09.2014
0
4
 
Онлайн тестове по Програмиране
ПСТ-1
изпитен тест по Програмиране за Студенти от 3 курс
Тест по ПСТ-1 ТУ София, ИПФ Сливен. Всеки въпрос има само един верен отговор.
(Труден)
21
8
1
3 мин
28.05.2015
Програмиране в интернет среда (X)HTML и CSS
изпитен тест по Програмиране за Студенти от 3 курс
Тестът е използван в МГУ “Св. Иван Рилски” и включва 30 въпроса, изискващи един верен отговор. Подходящ за проверка на знанията в областта.
(Труден)
30
12
1
5 мин
01.10.2014
» виж всички онлайн тестове по програмиране

Обектно ориентирано програмиране - Указатели и масиви. Предаване на резултати. Функции от тип указател. Указател към функции. Стандартни функции за обработка на низове

Материал № 540680, от 26 юли 2010
Свален: 127 пъти
Прегледан: 134 пъти
Предмет: Програмиране, Информатика, ИТ
Тип: Лекция
Брой страници: 8
Брой думи: 55
Брой символи: 366

Потърси помощ за своята домашна:

Имаш домашна за "Обектно ориентирано програмиране - Указатели и  ..."?
Намери бързо решение, с помощтта на потребители на Pomagalo.com:

Намери частен учител

Виторио Белоречки
преподава по Програмиране
в град София
с опит от  4 години
338 37

Николай Ненков
преподава по Математика
в град Варна
с опит от  2 години
493 89

виж още преподаватели...
Последно видяха материала