2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Pour imprimer l'adresse de l'objet pointé par le pointeur et l'adresse du pointeur lui-même, vous pouvez utiliser %p
formater le caractère pour afficher l’adresse du pointeur.Le code suivant montreoriginalString
etcopiedString
L'adresse du pointeur et l'adresse pointant vers l'objet :
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);
Les résultats d'exécution de Xcode version 15.1 (15C65) et du simulateur (iPhone 15) sont les suivants :
// 打印的内容一样
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!
etCopied: Hello, World!
Affiche le contenu de la chaîne.Original pointer address: %p
Pointeur de sortieoriginalString
L'adresse elle-même sur la pile.Copied pointer address: %p
Pointeur de sortiecopiedString
L'adresse elle-même sur la pile.Original object address: %p
sortiroriginalString
L'adresse dans le tas de l'objet chaîne pointé.Copied object address: %p
sortircopiedString
L'adresse dans le tas de l'objet chaîne pointé.On voit qu'en raison de NSString
est un objet immuable et exécutecopy
La méthode ne crée pas de nouvel objet, mais renvoie le même objet.doncoriginalString
etcopiedString
Pointez vers la même adresse mémoire (l'adresse de l'objet est la même), mais leurs pointeurs eux-mêmes ont des adresses différentes sur la pile.
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);
Les résultats d'exécution de Xcode version 15.1 (15C65) et du simulateur (iPhone 15) sont les suivants :
Original: Hello, World!
Copied: Hello, World!
// 不同的指针
Original pointer address: 0x7ff7be102a98
Copied pointer address: 0x7ff7be102a90
// 指向不同的对象
Original object address: 0x101dfd070
Copied object address: 0x600000c80090