Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Para imprimir la dirección del objeto al que apunta el puntero y la dirección del puntero mismo, puede utilizar %p
Carácter de formato para generar la dirección del puntero.El siguiente código muestraoriginalString
ycopiedString
La dirección del puntero y la dirección que apunta al objeto:
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);
Los resultados de ejecución de Xcode versión 15.1 (15C65) y Simulator (iPhone 15) son los siguientes:
// 打印的内容一样
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!
yCopied: Hello, World!
Muestra el contenido de la cadena.Original pointer address: %p
Puntero de salidaoriginalString
La dirección misma en la pila.Copied pointer address: %p
Puntero de salidacopiedString
La dirección misma en la pila.Original object address: %p
producciónoriginalString
La dirección en el montón del objeto de cadena al que apunta.Copied object address: %p
produccióncopiedString
La dirección en el montón del objeto de cadena al que apunta.Se puede observar que debido a NSString
es un objeto inmutable y se ejecutacopy
El método no crea un nuevo objeto, pero devuelve el mismo objeto.entoncesoriginalString
ycopiedString
Apuntan a la misma dirección de memoria (la dirección del objeto es la misma), pero sus punteros tienen direcciones diferentes en la pila.
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);
Los resultados de ejecución de Xcode versión 15.1 (15C65) y Simulator (iPhone 15) son los siguientes:
Original: Hello, World!
Copied: Hello, World!
// 不同的指针
Original pointer address: 0x7ff7be102a98
Copied pointer address: 0x7ff7be102a90
// 指向不同的对象
Original object address: 0x101dfd070
Copied object address: 0x600000c80090