C++ Нулевой указатель

Указатели в C++

При объявлении переменной, если нет точного адреса для присваивания, хорошей практикой программирования является присвоение переменной-указателю значения NULL. Указатель, которому присвоено значение NULL, называетсяпустымуказателем.

NULL-указатель — это константа со значением ноль, определённая в стандартной библиотеке. Посмотрите на следующую программу:

Пример

#include <iostream>

using namespace std;

int main ()
{
   int  *ptr = NULL;

   cout << "Значение ptr равно " << ptr ;
 
   return 0;
}

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

ptr 的值是 0

В большинстве операционных систем программам не разрешён доступ к памяти по адресу 0, поскольку эта память зарезервирована операционной системой. Однако адрес памяти 0 имеет особое значение; он указывает, что указатель не указывает на доступную область памяти. Но по соглашению, если указатель содержит нулевое значение (ноль), считается, что он ни на что не указывает.

Чтобы проверить нулевой указатель, можно использовать оператор if, как показано ниже:

if(ptr)     /* 如果 ptr 非空,则完成 */
if(!ptr)    /* 如果 ptr 为空,则完成 */

Следовательно, если всем неиспользуемым указателям присвоены нулевые значения и использование нулевых указателей избегается, можно предотвратить неправильное использование неинициализированного указателя. Часто неинициализированные переменные содержат мусорные значения, что затрудняет отладку программ.

Указатели в C++

Другие расширения