Мегаобучалка Главная | О нас | Обратная связь


Для динамического массива начальный адрес присваивается объявленному указателю на массив в процессе выполнения программы



2016-01-26 296 Обсуждений (0)
Для динамического массива начальный адрес присваивается объявленному указателю на массив в процессе выполнения программы 0.00 из 5.00 0 оценок




Сформировать список студентов, упорядочить его по возрастанию проходного балла и вывести в окно терминала.

int n=3; Student [ ] students = new Student [n];  

for (int i=0; i<n; i++) students[i]=new Student();

       
 
   
students[0].surname="Иванов"; …  
 

       
 
   
sort (students);  
 


В C/C++

Указатель – переменная, значением которой является адрес ячейки памяти. Другими словами, указатель ссылается на блок данных из области памяти, причём на самое его начало.

Указатель может ссылаться на переменную или функцию. Для этого нужно знать адрес переменной или функции.

Чтобы узнать адрес конкретной переменной в С++ существует унарная операция взятия адреса &. Такая операция извлекает адрес объявленных переменных, для того, чтобы присвоить его указателю.

Если для передачи параметра в метод использовать имя переменной, то передача переменной будет осуществляться по значению. При этом (если переменная является, например, массивом) большой объем информации будет копироваться, что увеличит время его обработки. Если для передачи параметра в метод использовать указатель, то передача переменной будет осуществляться по ссылке (по адресу переменной).

Любой указатель необходимо объявить перед использованием, как и любую переменную.

int *a ;

Для того, чтобы получить значение, которое находится по адресу, на который ссылается указатель, используется префикс *. Данная операция называется разыменованием указателя.

*a = 10;

int main(int argc, char* argv[ ]) {

int var = 123; // инициализация переменной var числом 123

int *ptrvar = &var; // инициализация указателя:

// присвоили адрес переменной var)

int *a = new int; // Объявление указателя для переменной типа int int *b = new int(5); // Инициализация указателя для массива int

*a = 10;

Если распечатать значения переменных, то получим, примерно, следующее:

&var = 0x22ff08

ptrvar = 0x22ff08

var = 123

*ptrvar = 123

Для того, чтобы освободить память, выделенную оператором new, используется оператор delete:

delete a; delete b;

В основном указатели используются для организации динамического распределения памяти.

Например, если размер массива заранее неизвестен (количество элементов вводится пользователем в процессе выполнения программы), используется динамическое выделение памяти под массив.

Для использования функций динамического выделения памяти необходимо описать указатель, представляющий собой начальный адрес хранения элементов массива.

int *p; // указатель на тип int

Начальный адрес статического массива определяется компилятором в момент его объявления и не может быть изменен.

Для динамического массива начальный адрес присваивается объявленному указателю на массив в процессе выполнения программы.



2016-01-26 296 Обсуждений (0)
Для динамического массива начальный адрес присваивается объявленному указателю на массив в процессе выполнения программы 0.00 из 5.00 0 оценок









Обсуждение в статье: Для динамического массива начальный адрес присваивается объявленному указателю на массив в процессе выполнения программы

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (296)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)