2009-04-29 70 views

回答

36

到的NSLog的參數必須是一個NSString,所以你要

NSLog(@"%p", &myIntVar); 
+1

更好的是,us @「%p」。 %x將整數值格式化爲十六進制,而%p專門用於指針,另外還會填充它打印的十六進制表示。 – 2009-04-29 13:53:09

+0

好點!我已經更新了相應的答案:) – smorgan 2009-04-29 13:58:23

4

嘗試:

NSLog(@"%p", &myIntVar); 

NSLog(@"%lx", (long)&myIntVar); 

第一個版本使用特定指針打印格式,它假定傳遞的參數是一個指針,但內部將它視爲一個長整型。

第二個版本採用地址,然後將其轉換爲長整數。這對於在64位平臺上的可移植性是必需的,因爲如果沒有「l」格式限定符,它會假定提供的值是一個整數,通常只有32位長。

0

Nslog(@「%x」,& myIntVar); %x是long int 或者您可以打印Nslog(@「%p」,& myIntVar); %p用於指針