Что такое указатели 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;
}
...

Комментарии

Отправить комментарий

Популярные сообщения из этого блога

Как включить звук в безопасном режиме?

Как создать учетную запись BAIDU за пределами Китая без китайского номера телефона 2022