ВУЗ:
Составители:
57
которое и необходимо использовать для присвоения и
сравнения нулевого указателя. Например:
#include <stdio.h>
:
int*p=NULL; /*p вначале не указывает никуда*/
:
if (p!=NULL) /*если p куда- то уже указывает, то его можно
использовать */
:
Как известно, хранящиеся в физической памяти компьютера
единицы и нули, расположенные в одной и той же ячейке памяти, могут
трактоваться по-разному: как int, как float, как char. Указатели
соответствующих типов можно установить на один и тот же адрес, после
чего разыменование данного указателя позволяет обратиться к ячейке
памяти как к значению соответствующего типа. Указатели разных типов
можно присваивать друг другу, однако для этого необходимо явное
приведение типа, например:
int i;
int*pi;
float*pf;
:
pi = & i;
pf = (float*) pi;
*pf = 3.14;
Теперь значение 3.14 в двоичном виде будет занесено в ячейки
памяти, занимаемые переменной i.
В языке С есть еще один тип указателя – void*. Фактически, это не
типизированный указатель. Для указателя типа void* нельзя использовать
операцию разыменования для чтения или присвоения значения , так как тип
этого значения неизвестен. Зато , указатель void* можно присваивать
указателю на любой тип и наоборот безо всяких операций преобразования
типов. Void* можно использовать для промежуточного хранения указателя
любого типа.
Указатели чаще всего используются:
57 которое и необходимо использовать для присвоения и сравнения нулевого указателя. Например: #include: int*p=NULL; /*p вначале не указывает никуда*/ : if (p!=NULL) /*если p куда-то уже указывает, то его можно использовать*/ : Как известно, хранящиеся в физической памяти компьютера единицы и нули, расположенные в одной и той же ячейке памяти, могут трактоваться по-разному: как int, как float, как char. Указатели соответствующих типов можно установить на один и тот же адрес, после чего разыменование данного указателя позволяет обратиться к ячейке памяти как к значению соответствующего типа. Указатели разных типов можно присваивать друг другу, однако для этого необходимо явное приведение типа, например: int i; int*pi; float*pf; : pi = & i; pf = (float*) pi; *pf = 3.14; Теперь значение 3.14 в двоичном виде будет занесено в ячейки памяти, занимаемые переменной i. В языке С есть еще один тип указателя – void*. Фактически, это не типизированный указатель. Для указателя типа void* нельзя использовать операцию разыменования для чтения или присвоения значения, так как тип этого значения неизвестен. Зато, указатель void* можно присваивать указателю на любой тип и наоборот безо всяких операций преобразования типов. Void* можно использовать для промежуточного хранения указателя любого типа. Указатели чаще всего используются:
Страницы
- « первая
- ‹ предыдущая
- …
- 55
- 56
- 57
- 58
- 59
- …
- следующая ›
- последняя »