Rust Beginner question. About the address of temporary objects.

34 points Concasse-Shot

I come from a c++ background and the address of rvalue can't be taken unless it's bound to a temporary.

But in rust it's possible. How?

fn main() {
    println!("{:p}", &34);
}

Isn't 34 a rvalue? If the address of a rvalue can be taken then will the value be stored in the data section of the memory?

Edit: Thanks for all the answers