РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1215 of 1245 menu

Функция eq

Функция eq из модуля std::ptr сравнивает два указателя или значения на равенство. Она принимает два аргумента: первый - указатель на первое значение, второй - указатель на второе значение. Функция возвращает true, если значения равны, и false в противном случае. Поскольку функция помечена как unsafe, вызывающий код берёт на себя ответственность за корректность переданных указателей.

Синтаксис

unsafe { std::ptr::eq(a, b) }

Пример

Давайте сравним два одинаковых значения типа i32 через указатели:

fn main() { let a = 5; let b = 5; let res = unsafe { std::ptr::eq(&a, &b) }; println!("{}", res); }

Результат выполнения кода:

false

Обратите внимание, что переменные a и b расположены по разным адресам, поэтому указатели не равны, даже если значения одинаковы.

Пример

Давайте сравним два указателя, ссылающихся на одну и ту же переменную:

fn main() { let a = 5; let p1 = &a; let p2 = &a; let res = unsafe { std::ptr::eq(p1, p2) }; println!("{}", res); }

Результат выполнения кода:

true

Оба указателя ссылаются на один и тот же адрес памяти, поэтому функция возвращает true.

Пример

Давайте сравним два разных значения через указатели:

fn main() { let a = 5; let b = 10; let res = unsafe { std::ptr::eq(&a, &b) }; println!("{}", res); }

Результат выполнения кода:

false

Смотрите также

  • ключевое слово unsafe,
    которое позволяет выполнять небезопасные операции
  • функция read,
    которая читает значение по указателю
  • функция write,
    которая записывает значение по указателю
  • функция copy,
    которая копирует значение из одного указателя в другой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить