Информатика и технология программирования


           

с таким значением не является


Это значение адреса называется NULL-УКАЗАТЕЛЕМ или "пустым" указателем. Считается, что указатель с таким значением не является корректным (указывает "в никуда"). Обычно такое значение определяется в стандартной библиотеке ввода-вывода в виде &#35define NULL 0.

Значение NULL может быть присвоено любому указателю. Если указатель по логике работы программы может иметь такое значение, то перед косвенным обращением по нему его нужно проверять на достоверность:



int *p,a;
if () p=NULL; else p=&#38a; ...
if (p !=NULL) *p = 5; ...





СРАВНЕНИЕ УКАЗАТЕЛЕЙ НА БОЛЬШЕ-МЕНЬШЕ: при сравнении указателей производится сравнение соответствующих адресов как беззнаковых переменных. Естественный смысл такого сравнения имеется, если оба указателя ссылаются на элементы одного и того же
массива, тогда соотношение " больше-меньше" следует понимать как " ближе-дальше" к началу массива:

// Перестановка элементов массива симметрично середины

int A[20],i,j,x;
for(i=0,j=19; i&#60j; i++, j--)
{ x = A[i]; A[i] = A[j]; A[j] = x; }
int A[20],*pi,*pj,x;
for (pi=A,pj=A+19; pi &#60 pj; pi++, pj--)
{ x = *pi; *pi = *pj: *pj = x; }

РАЗНОСТЬ ЗНАЧЕНИЙ УКАЗАТЕЛЕЙ: в случае, когда указатели ссылаются на один и тот же массив, их разность понимается как "расстояние между ними",
выраженную в количестве указуемых переменных.

Все перечисленные операции, в которых применяются два указателя (присваивание, сравнение, вычитание), рассматривались для указателей с одинаковыми типами указуемых переменных. Случай с использованием указателей различных типов (преобразование типов указателей) имеет особое значение: он вплотную связан с принципами управления памятью в Си-программах и потому рассматривается отдельно (см.4.4).


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий