ВУЗ:
Составители:
58
для передачи параметров по ссылке, т.е. когда
необходимо, чтобы функция могла изменить значение параметра так ,
чтобы это изменение сохранилось при выходе из нее (при передаче
параметров по значению в функции используется копия параметра и она
поэтому не может изменить его так , чтобы это сохранилось при выходе);
для работы с динамической памятью . Под динамической памятью
понимается память , которую мы резервируем не при написании
программы, а выделяем уже в момент, когда программа выполняется . Это
требуется , когда заранее неизвестно, сколько памяти будет нужно и
определяется это уже только при выполнении программы. Например,
пользователь вводит массив такой какой он хочет. В этих ситуациях
программа вызывает стандартную функцию и передает ей параметром
столько памяти сколько нужно. Эта функция находит свободную область
памяти в компьютере, резервирует ее для нас и возвращает указатель на
нее, чтобы мы получили к ней доступ . Так как мы заранее не можем знать ,
где эта память будет выделена, работа с ней возможна только через
указатели (т.е. ее адрес);
для удобства обращения к разным участкам области памяти,
перемещая указатель при помощи адресной арифметики.
Один из самых простых примеров использования указателей – это
передача в функцию параметров по ссылке. В С нет типа «ссылка на
объект» , есть только указатели. Соответствующий параметр функции
необходимо определить , как указатель на нужный тип , а при ее вызове
передавать нужный адрес. Например:
int func(int*param)
{
:
*param = … .; /*меняем что - то */
}
:
void main(… )
{
int k;
i = func(&k); /*переменная k будет изменена*/
}
58 для передачи параметров по ссылке, т.е. когда необходимо, чтобы функция могла изменить значение параметра так, чтобы это изменение сохранилось при выходе из нее (при передаче параметров по значению в функции используется копия параметра и она поэтому не может изменить его так, чтобы это сохранилось при выходе); для работы с динамической памятью. Под динамической памятью понимается память, которую мы резервируем не при написании программы, а выделяем уже в момент, когда программа выполняется. Это требуется, когда заранее неизвестно, сколько памяти будет нужно и определяется это уже только при выполнении программы. Например, пользователь вводит массив такой какой он хочет. В этих ситуациях программа вызывает стандартную функцию и передает ей параметром столько памяти сколько нужно. Эта функция находит свободную область памяти в компьютере, резервирует ее для нас и возвращает указатель на нее, чтобы мы получили к ней доступ. Так как мы заранее не можем знать, где эта память будет выделена, работа с ней возможна только через указатели (т.е. ее адрес); для удобства обращения к разным участкам области памяти, перемещая указатель при помощи адресной арифметики. Один из самых простых примеров использования указателей – это передача в функцию параметров по ссылке. В С нет типа «ссылка на объект», есть только указатели. Соответствующий параметр функции необходимо определить, как указатель на нужный тип, а при ее вызове передавать нужный адрес. Например: int func(int*param) { : *param = ….; /*меняем что-то*/ } : void main(…) { int k; i = func(&k); /*переменная k будет изменена*/ }
Страницы
- « первая
- ‹ предыдущая
- …
- 56
- 57
- 58
- 59
- 60
- …
- следующая ›
- последняя »