Плейсхолдер {:p
Плейсхолдер {:p} используется в макросах форматирования
для вывода адреса указателя в памяти. Он принимает ссылку
на значение и отображает её адрес в шестнадцатеричном
формате с префиксом "0x". Плейсхолдер работает
с любым типом, реализующим трейт Pointer.
Синтаксис
println!("{:p}", reference)
Пример
Давайте выведем адрес переменной с помощью плейсхолдера
{:p}:
fn main()
{
let x = 42;
let ptr = &x;
println!("{:p}", ptr);
}
Результат выполнения кода:
0x7ffd5e8a3b4c
Пример
Давайте выведем адрес элемента вектора с помощью
плейсхолдера {:p}:
fn main()
{
let v = vec![1, 2, 3, 4, 5];
let ptr = &v[0];
println!("{:p}", ptr);
}
Результат выполнения кода:
0x55a1f2c3d4e0
Пример
Давайте сравним адреса двух переменных с помощью
плейсхолдера {:p}:
fn main()
{
let x = 10;
let y = 20;
println!("x: {:p}", &x);
println!("y: {:p}", &y);
}
Результат выполнения кода:
x: 0x7ffc8b2a1f44
y: 0x7ffc8b2a1f48