ВУЗ:
Составители:
Рубрика:
В операторе count_1 = *point_count; перед переменной point_count стоит
оператор ‘*’ и сам оператор стоит в правой части оператора присваивания.
Это означает операцию чтения (получения) числа по адресу. В итоге
переменной count_1 будет присвоено число 5. Обратите внимание, что перед
тем, как выполнить операцию чтения памяти по адресу, выполнена
инициализация указателя (указателю присвоен адрес переменной count_1).
В программе 1.5
/* программа # 1.5 */
# include <stdio.h>
void main ( void )
{
int count,count_1, *point_count;
count = 5;
count_1 = *point_count;
printf("Значение count_1 = %d\n",count_1);
}
содержится грубейшая ошибка - отсутствует операция инициализации
указателя адресом переменной. При загрузке программы point_count будет
содержать случайный набор бит, оставшийся от предыдущей загрузки памяти
другой программой, который чисто формально можно толковать как адрес. Но
в этом случае, программа работать не будет. Одно из основных правил работы
с указателями состоит в том, что в программе не должно быть не
инициализированных указателей.
4. Операция записи чисел по адресу, на который ссылается указатель.
В программе 1.6
/* программа # 1.6*/
# include <stdio.h>
void main ( void )
{
int count, *point_count;
count = 5;
point_count = &count;
*point_count = 10;
printf("Значение count = %d\n",count);
}
указатель point_count стоит в левой части оператора присваивания. По адресу,
на который ссылается указатель, будет записано число 10. Эквивалентный
оператор программы count = 10.Это нетрудно показать следующим образом.
7
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »