ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »
