2017-08-26 6 views
2
fn main() { 
    println!("{:p}", &"aravindh"); 
    println!("{:p}", &"test"); 
    address_of(&"aravindh"); 
    address_of(&"test"); 
} 

fn address_of<A>(a:&A){ 
    println!("{:p}", &a); 
} 

出力は、次のとおりです。最初の二つの文字列のアドレスがaddress_of機能を経由して印刷したときに、なぜ彼らは同じであり、異なっているファンクションパラメータとして出力されたときに、アドレスが2つの異なる値になるのはなぜですか?

0x10da08260 
0x10da08278 
0x7fff52231990 
0x7fff52231990 

ますが?

答えて

4

パラメータaのアドレスが印刷されているため、そのアドレスのアドレスではありません。

fn address_of<A>(a: &A){ 
    println!("{:p}", a); 
} 
+0

ポイントする変数のアドレスはどのように表示されますか? –

+0

@AravindhS:そうです。 \ **答え* \ *のコード例を指します –

+0

見逃した。ありがとうございました。 –

関連する問題