ВУЗ:
Составители:
56
Чтобы использовать указатель, ему должен быть
присвоен адрес значения , на которое он будет указывать . Адрес
переменной можно получить при помощи специальной операции:
&переменная
Операция получения адреса не путается с «побитовым И», так как
она имеет только один операнд (унарная ), а «побитовое И» - два операнда.
При работе с указателем просто имя переменной обозначает
указатель, а не значение, на которое он указывает. Этот указатель можно
сравнить с другим на равенство , неравенство , присвоить другому или
передать как параметр функции. Но чтобы получить доступ к самому
значению , используется операция разыменования ( получение значения по
указателю ):
*имя
Она обратна операции взятия адреса &.
Если попытаться использовать операцию разыменования для
указателя, не содержащего присвоенный ранее правильный адрес, то
программа скорее всего «упадет» по ошибке чтения или записи по
недопустимому адресу. Это произойдет потому, что
неинициализированный указатель, как и переменные других типов,
содержит «мусор» .
Во внутреннем представлении указатели – это целые числа, которые
являются номерами ячеек памяти компьютера. Нулевая ячейка памяти
всегда недопустима для использования , поэтому нулевой указатель можно
использовать в качестве признака того, что этот указатель не содержит
какого-либо правильного адреса, т.е. никуда не указывает. Это важно, так
как при написании программ указатели часто используются так , что они
указывают, то на одни, то на другие значения , то временно вообще никуда
не указывают. Чтобы отличить последнюю ситуацию , используют нулевой
указатель. Его вводим искусственно .
Просто использовать ноль в качестве нулевого указателя не вполне
корректно, так как ноль – это число, а указатель – это самостоятельный
тип , который хоть и является внутри числами, но с точки зрения языка С
несет другую нагрузку. Во многих включаемых файлах (h-файлах )
стандартной библиотеки, в том числе stdio.h, определено имя NULL,
56 Чтобы использовать указатель, ему должен быть присвоен адрес значения, на которое он будет указывать. Адрес переменной можно получить при помощи специальной операции: &переменная Операция получения адреса не путается с «побитовым И», так как она имеет только один операнд (унарная), а «побитовое И» - два операнда. При работе с указателем просто имя переменной обозначает указатель, а не значение, на которое он указывает. Этот указатель можно сравнить с другим на равенство, неравенство, присвоить другому или передать как параметр функции. Но чтобы получить доступ к самому значению, используется операция разыменования (получение значения по указателю): *имя Она обратна операции взятия адреса &. Если попытаться использовать операцию разыменования для указателя, не содержащего присвоенный ранее правильный адрес, то программа скорее всего «упадет» по ошибке чтения или записи по недопустимому адресу. Это произойдет потому, что неинициализированный указатель, как и переменные других типов, содержит «мусор». Во внутреннем представлении указатели – это целые числа, которые являются номерами ячеек памяти компьютера. Нулевая ячейка памяти всегда недопустима для использования, поэтому нулевой указатель можно использовать в качестве признака того, что этот указатель не содержит какого-либо правильного адреса, т.е. никуда не указывает. Это важно, так как при написании программ указатели часто используются так, что они указывают, то на одни, то на другие значения, то временно вообще никуда не указывают. Чтобы отличить последнюю ситуацию, используют нулевой указатель. Его вводим искусственно. Просто использовать ноль в качестве нулевого указателя не вполне корректно, так как ноль – это число, а указатель – это самостоятельный тип, который хоть и является внутри числами, но с точки зрения языка С несет другую нагрузку. Во многих включаемых файлах (h-файлах) стандартной библиотеки, в том числе stdio.h, определено имя NULL,
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »