obj_addr() gives the address of the value that x points to;
obj_addrs() gives the address of the components the list,
environment, and character vector x point to.
Examples
# R creates copies lazily
x <- 1:10
y <- x
obj_addr(x) == obj_addr(y)
#> [1] TRUE
y[1] <- 2L
obj_addr(x) == obj_addr(y)
#> [1] FALSE
y <- runif(10)
obj_addr(y)
#> [1] "0x561b69f68c08"
z <- list(y, y)
obj_addrs(z)
#> [1] "0x561b69f68c08" "0x561b69f68c08"
y[2] <- 1.0
obj_addrs(z)
#> [1] "0x561b69f68c08" "0x561b69f68c08"
obj_addr(y)
#> [1] "0x561b69d94dc8"
# The address of an object is different every time you create it:
obj_addr(1:10)
#> [1] "0x561b6c55bb88"
obj_addr(1:10)
#> [1] "0x561b6c5b3278"
obj_addr(1:10)
#> [1] "0x561b6c60e798"
