2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Um die Adresse des Objekts, auf das der Zeiger zeigt, und die Adresse des Zeigers selbst auszudrucken, können Sie verwenden %p
Formatzeichen zur Ausgabe der Zeigeradresse.Der folgende Code zeigtoriginalString
UndcopiedString
Die Zeigeradresse und die Adresse, die auf das Objekt zeigt:
NSString *originalString = @"Hello, World!";
NSString *copiedString = [originalString copy];
// 打印字符串内容
NSLog(@"Original: %@", originalString); // 输出: Hello, World!
NSLog(@"Copied: %@", copiedString); // 输出: Hello, World!
// 打印指针本身的地址
NSLog(@"Original pointer address: %p", &originalString);
NSLog(@"Copied pointer address: %p", &copiedString);
// 打印指针指向对象的地址
NSLog(@"Original object address: %p", originalString);
NSLog(@"Copied object address: %p", copiedString);
Die laufenden Ergebnisse von Xcode Version 15.1 (15C65) und Simulator (iPhone 15) sind wie folgt:
// 打印的内容一样
Original: Hello, World!
Copied: Hello, World!
// 指针本地的地址不一样,说明是不同的指针
Original pointer address: 0x7ff7b1a5fa98
Copied pointer address: 0x7ff7b1a5fa90
// 不同的指针指向同一个对象
Original object address: 0x10e4a0070
Copied object address: 0x10e4a0070
Original: Hello, World!
UndCopied: Hello, World!
Geben Sie den String-Inhalt aus.Original pointer address: %p
AusgabezeigeroriginalString
Die Adresse selbst auf dem Stapel.Copied pointer address: %p
AusgabezeigercopiedString
Die Adresse selbst auf dem Stapel.Original object address: %p
AusgabeoriginalString
Die Adresse im Heap des String-Objekts, auf das verwiesen wird.Copied object address: %p
AusgabecopiedString
Die Adresse im Heap des String-Objekts, auf das verwiesen wird.Es ist ersichtlich, dass aufgrund NSString
ist ein unveränderliches Objekt und wird ausgeführtcopy
Die Methode erstellt kein neues Objekt, sondern gibt dasselbe Objekt zurück.AlsooriginalString
UndcopiedString
Zeigen Sie auf dieselbe Speicheradresse (die Objektadresse ist dieselbe), aber ihre Zeiger selbst haben unterschiedliche Adressen auf dem Stapel.
NSString *originalString = @"Hello, World!";
NSString *copiedString = [originalString mutableCopy];
// 打印字符串内容
NSLog(@"Original: %@", originalString); // 输出: Hello, World!
NSLog(@"Copied: %@", copiedString); // 输出: Hello, World!
// 打印指针本身的地址
NSLog(@"Original pointer address: %p", &originalString);
NSLog(@"Copied pointer address: %p", &copiedString);
// 打印指针指向对象的地址
NSLog(@"Original object address: %p", originalString);
NSLog(@"Copied object address: %p", copiedString);
Die laufenden Ergebnisse von Xcode Version 15.1 (15C65) und Simulator (iPhone 15) sind wie folgt:
Original: Hello, World!
Copied: Hello, World!
// 不同的指针
Original pointer address: 0x7ff7be102a98
Copied pointer address: 0x7ff7be102a90
// 指向不同的对象
Original object address: 0x101dfd070
Copied object address: 0x600000c80090