Недавно я проявил интерес к программированию на С, поэтому я получил книгу (K & R) и начал изучать.
Исходя из университетского курса в Java (основы), указатели - это совершенно новая глава, и из того, что я читал в Интернете, довольно сложная концепция, чтобы окунуться. Прежде чем перейти к главе указателя, у меня создалось впечатление, что указатели являются основной частью C и дают большие преимущества.
Прочитав главу и получив общее представление о том, какие указатели и как они работают, преимущества для меня не очевидны.
Например (пожалуйста, поправьте меня, если я полностью ошибаюсь) во введении указателей в книге K & R говорится, что, поскольку мы вызываем по значению, передавая переменную в вызове функции, мы в значительной степени передаем копию переменной для функции для обработки, и поэтому функция не может ничего сделать с исходной переменной, и мы можем преодолеть это с помощью указателей.
В более позднем примере, использующем указатель char, в книге говорится, что приращение указателя char является законным, поскольку функция имеет личную копию указателя. Не являются ли "частные копии" причиной использования указателей?
Наверное, я немного смущен тем, что использовал указатели. Если спрошено, я могу использовать указатели вместо использования индексов массива, например, но я сомневаюсь, что это основное использование указателей.
Linux и программирование с открытым исходным кодом были основной причиной, по которой я попал в C. Я получил исходный код проекта C для изучения (Geany IDE), и я вижу, что указатели используются во всем исходном коде.
Я также немного поработал на форумах и нашел пару сообщений с похожими вопросами. Ответ был (я цитирую):
Если вы не знаете, когда вы должны использовать указатели, просто не используйте их.
Становится очевидным, когда вам нужно их использовать, каждая ситуация отличается.
Безопасно ли мне в данный момент избегать использования указателей и использовать их только в определенных ситуациях (где потребность в указателях будет очевидна?)