Глагол форматирования %p
Глагол форматирования %p используется для вывода адреса указателя в шестнадцатеричном формате с префиксом 0x. Этот глагол принимает в качестве аргумента указатель любого типа и отображает его значение в виде шестнадцатеричного числа. Если передать значение, не являющееся указателем, глагол %p выведет адрес этого значения, если оно адресуемо.
Синтаксис
fmt.Printf("%p", ptr)
Пример
Выведем адрес обычной переменной с помощью глагола %p:
package main
import "fmt"
func main() {
num := 42
ptr := &num
fmt.Printf("%p", ptr)
}
Результат выполнения кода:
"0xc0000a2000"
Пример
Выведем адрес переменной строки с помощью глагола %p:
package main
import "fmt"
func main() {
str := "abcde"
ptr := &str
fmt.Printf("%p", ptr)
}
Результат выполнения кода:
"0xc0000a2020"
Пример
Выведем адрес элемента слайса с помощью глагола %p:
package main
import "fmt"
func main() {
nums := []int{1, 2, 3, 4, 5}
fmt.Printf("%p", &nums[2])
}
Результат выполнения кода:
"0xc0000aa040"
Пример
Выведем адрес переменной напрямую, без создания указателя:
package main
import "fmt"
func main() {
num := 42
fmt.Printf("%p", &num)
}
Результат выполнения кода:
"0xc0000a2000"