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