Кроме переменных в с++ существуют указатели, которые вместо того,
чтобы "хранить" их, содержат адрес этих данных в памяти. То есть,
например, у нас есть куча шариков. Где-то есть шарик с номером 5. Ну так
вот, указатель - это такая переменная, которая указывает на "позицию"
этого шарика, на его местоположения.
Создание указателя:
тип *имя;
Пример:
int *p; // указатель на переменную типа int или первый элемент массива типа int
char *pc; // указатель на переменную или массив типа char
Теперь надо заставить указатель на что-то указывать. Для этого мы
можем использовать оператор & - функция взятия адреса переменной
int *p;
int a=10;
p=&a;
//теперь p указывает на переменную a.
Для записи чего-либо в память, на которую указывает указатель надо
использовать оператор *, который обозначает, что мы работаем с данными,
находящимися по такому-то адресу
*p=20; //теперь a==20
Также мы можем динамически выделять память под данные во время работы
программы. а не во время ее разработки. Например, нам вводят число
символов в строке и затем строку. С помощью указателей и выделения
памяти мы можем создать массив необходимого размера во время работы
программы.
Для выделения памяти служит функция new:
char *c=new char(количество символов);
Вот мы создали массив типа char.Работа с ним ничем не отличается от работы с обычным массивом.
Внимание, после того, как вы поработали с массивом и вам он больше не нужно, необходимо отчистить память:
delete [] имя указателя на память, которую нужно отчистить.
Комментариев нет:
Отправить комментарий