Андрей
Высший разум
(430696)
1 неделю назад
В C без указателей никак не обойтись. Но в C++ ситуация соверешенно иная: везде, где можно обойтись ссылкой, надо использовать именно ссылку, а не указатель.
Арифметика указателей в C/C++ - слишком низкоуровневый и никак не контролируемый компилятором/RTL механизм, создающий множество труднообнаруживаемых проблем. И современный С++ сделан так, чтобы максимально обойтись вообще без указателей, используя классы стандартной библиотеки, полностью скрывающие внутри себя работу с указателями. И это единственный способ писать на C++ более-менее надёжный код.
Другое дело, что в С/C++ массивы - совсем не массивы, а синтаксический сахар для указателей. И используя в коде конструкции вида int arr[25]; ты наступаешь на те же самые грабли арифметики указателей.
Полноценные массивы в C++ реализованы не на уровне языка, а на уровне стандартной библиотеки: классы array и vector. И именно их надо максимально использовать.