我對NSLog的語法有點困惑。例如, NSLog指針語法
NSString *nameString = @"Name"; NSLog(@"nameString is: %@", nameString);如果我的理解是正確的(它很可能不是),那麼nameString被定義爲一個指向String的指針。然後我想,這將打印nameString保存的內存地址,而不是該地址的值。所以,如果這是真的,那麼在NSLog語句中,爲了獲得指針的值,我們不應該使用星號符號來訪問nameString指向的這樣的內容:
NSLog(@"nameString is: %@", *nameString);? 從C編程開始已經有一段時間了,但是由於Objective-C是C的超集,我認爲它們的行爲是相似的。
解釋將不勝感激!謝謝!
如果你想看到內存地址使用'%p' –
謝謝,但我想解釋爲什麼在這種情況下nameString(一個指針)跟隨它指向的內存地址,並得到任何那裏(在這種情況下字符串「名稱」)。我不明白爲什麼這個工作。 –
'...%@「,nameString]'擴展爲'[nameString description]' –