Форум программистов, компьютерный форум CyberForum.ru

Динамическая память, указатели и ссылки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ НОД (наибольший общий делитель) n-го количества чисел http://www.cyberforum.ru/cpp-beginners/thread649048.html
Помогите, пожалуйста, написать программу на С++, которая бы находила НОД(наибольший общий делитель) n-го количества числа(n ввести с клавиатуры)
C++ setfill на одну строку Добрый день, подскажите пожалуйста, как сделать, что б setfill заполнял пустые места только у одного, определенного, поля, а не у всех? http://www.cyberforum.ru/cpp-beginners/thread649031.html
Обращение к функции через указатель C++
Добрый день.Объясните для незнающего след.код:в частности строку номер:6class ListItem { public: void Append(ListItem *pItem) { pItem->m_pNext = this; m_pPrevious = pItem; m_pNext = NULL; } private:
Обращение к функции C++
Здраствуйте! Написал программу которая должна считать количество строчек в файле ( без пустых строчек ), пустыми строчками называются те которые содержат пробел, символ табуляции и непечатаемые символы. Когда написал программу в функции int main, программа запустилась и правильно посчитала количество строчек, но когда я решил перенести решение основной задачи в функцию unsigned long...
C++ Function - Delete(s,n,l). Purpose - удаление из строки s подстроки http://www.cyberforum.ru/cpp-beginners/thread649022.html
Function - Delete(s,n,l). Purpose - удаление из строки s подстроки, начиная с позиции n, длиной l (аналогичная библиотечная Function есть в Pascal).
C++ на входе программы даются два числа на входе программы даются два числа N и P. программа на выходе должна дать такое максимальное число М, что N! делится на Р в степени М, но не делится на Р в степени М+1. примечание: 1. числа N и Р так велики, что нет смысла считать значение N!. 2. числа N и Р являются натуральными. подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.09.2012, 23:13     Динамическая память, указатели и ссылки
Указатель - переменная, значением которой является адрес другой переменной. Если указатель объявлен как указатель на константу:
C++
1
2
int a = 4;
const int *ptr = &a; // указателю на константу присваивается адрес переменной a
, то через такой указатель нельзя изменять переменную, адрес которой он содержит. Например, такой код вызовет ошибку:
C++
1
*ptr = 5;
Указатель на константу может быть только константным. Знак *, при объявлении указателя, говорит о том, что переменная, перед которой он стоит, является переменной-указателем. В других случаях, этот знак перед указателем, означает операцию разыменования указателя, т.е. получение той переменной, адрес которой содержится в указателе. Например:
C++
1
2
3
int a = 4;
int *ptr = &a; указателю на int присваивается адрес переменной a
*ptr = 8; // разыменование указателя, т.е. получение переменной a и присвоение ей нового значения 8
При объявлении указателя, то что стоит слева от * относится к той переменной, адрес которой содержит указатель, а то, что стоит справа от *, к самой переменной-указателю. То есть, такая запись:
C++
1
int *const ptr = &a;
говорит о том, что объявляется константный указатель на неконстантную переменную int, и ему присваивается адрес переменной a. Значение такого указателя нельзя менять. То есть, попытка присвоить такому указателю какой-нибудь другой адрес вызовет ошибку. Например:
C++
1
2
3
4
int a = 4;
int b = 6;
int *const ptr = &a;
ptr = &b; // ошибка
Добавлено через 18 минут
Указатель на указатель - это переменная, значением которой является адрес переменной-указателя. Например:
C++
1
2
3
int a = 4;
int *ptr = &a; // ptr - переменная-указатель на itn. Содержит адрес переменной а.
int **ptrptr = &ptr; // ptrptr - переменная-указатель на указатель на int. Содержит адрес ptr, переменной-указателя на int
Добавлено через 12 минут
C++
1
2
3
4
5
6
7
8
9
10
11
int a = 4;
int b = 5;
int *ptr = &a; 
int **ptrptr = &ptr;
*ptr = 8; // а присваиваем 8
**ptrptr = 8; //  то же самое
ptr = &b; // переменной-указателю  на int - ptr присваиваем другое значение, адрес перменной b
*ptrptr = &b; // то же самое
int d = 2;
int *ptrd = &d; 
ptrptr = &ptrd; // указателю на указатель на int - ptrptr присваивается новое значение, адрес указателя ptrd
 
Текущее время: 02:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru