Что такое указатели C/C++
Использование указателей в C/C++
В каких случаях целесообразно использовать указатели?
Если вы собираетесь использовать указатели вы должны знать, что это и почему они полезны, а не только изучить синтаксис. Так вот короткое описание и демонстрация использования.
Что такое указатели
Они очень полезны. Почему? Потому что вместо передачи больших структур данных (класса, структуры, массива) в функции Вы просто передаете адрес. Размер указателя очень мал. Такое эффективное использование указателей сделает ваш код более производительным. Кроме того, они важные инструменты для операций с кучей памяти, таких как динамическое распределение и освобождение.
Почему только в C/C++ используются указатели?
Это не так. Просто языки высокого уровня скрывают тот факт, что они работают с помощью указателей. Например, Java, полностью объектно-ориентированным, это означает, что каждый объект на самом деле является ссылкой.
Как использовать указатели (простое пример)
int a = 3; // сначала создать что-то на что будет ссылаться указатель
int *ptr = 0; // Далее вы создаете указатель, используя *
ptr = &a; // присвоить указателю адрес &
Указатели необходимо использовать:
1. Если ваш объект нельзя или затруднительно копировать
int sum(std::list<int>&);
Функция суммирует элементы списка. Если бы не ссылка, тогда при вызове необходимо было бы копировать целый список в новую память, это очень ресурсоемкий процесс.
2. Если объект, инициализируется в неопределённый заранее момент
class sample;
...
sample* object = NULL;
if(need_object())
{
object = new sample;
}
...
В этом случае, присваивая ссылке NULL, мы демонстрируем, что объекта пока нет
3. Если заранее неизвестное количество объектов, которое необходимо создать
class sample;
...
sample* makeobj(int amount)
{
sample* obj = new sample[amount];
return obj;
}
...
Блин, что ж так много ошибок то
ОтветитьУдалить