Другие языки программирования и технологии

Для чего нужны указатели в c ?

Юрий Бородин
Юрий Бородин
11 396
Это переменные которые хранят адреса данных в памяти а не сами данные, используются для адресации структур данных произвольного размера а также для передачи и получения параметров функций которые неоптимально передавать через стек в виде данных, проще и быстрее передать указатель (адрес), также с помощью указателей можно "гулять" по произвольным участкам адресного пространства процесса, для указателей используется адресная арифметика - когда прибавление 1 увеличивает значение указателя на значение размера (типа).
++ означает увеличение на 1 а -- уменьшение на 1
Николай Епринцев
Николай Епринцев
8 660
Лучший ответ
1. Для передачи параметров в функцию. Если передавать без указателей, функция работает с копией переменной или структуры, а сама переменная или структура не изменяется. А если надо, чтоб изменялась, используют указатель.
2. Для создания массивов, длина которых заранее неизвестна. Создают указатель на первый элемент и по нему программа находит массив, а память выделают позже, когда станет ясно, сколько ее надо.
3. Для связи друг с другом динамических структур данных. Например, в связанных списках по указателю можно перейти на следующий элемент.
Никитин Петя
Никитин Петя
77 825
Ну я бы многим посоветовал начать с ассемблера, для общего понимания функционирования процессора и программ. Но не углубляться, так как большой проект на ассемблере наверное нереально сделать, а просто понять что и как и переходить на другие языки программирования. После понимания ассемблера такие вопросы должны отпасть сами собой. Еще почитайте про оптимизацию программы.
Макс Хорошилов
Макс Хорошилов
15 382
Для того чтобы экономить ресурсы и повышать быстродействие.
Интересный вопрос. А для чего нужны целочисленные переменные? А символьные?
Видимо для удобства. В некоторых языках, более высокого уровня, возможность пользоваться ими на явном уровне убрали (видимо для безопасности), но С на то и С.
Указатели содержат адрес начала определенного блока памяти, и используя их можно обратиться к конкретному блоку.
При помощи указателей реализованы, например, массивы. объявляя массив вы, по большому счету, просто заявляете указатель на нулевой элемент и размер смещения.
Так же, при помощи указателей вы можете ускорить работу программы, передавая в функцию не данные, а указатель на них. Кстати, в Си, если я ничего не путаю, это чуть ли не единственный способ передать в функцию массив данных.
Еще строки по указателям передаются
Михаил Ващук
Михаил Ващук
1 837