Objective c &self——我能得到对象的地址吗

Objective c &self——我能得到对象的地址吗,objective-c,Objective C,我创建了同一类的两个对象。 在方法中执行此操作时: NSLog(@"This object is on address %p\n",&self);` 对于同一类的两个不同对象,我得到相同的地址 当我在课外做这件事时: NSLog(@"This object is on address %p\n",&myObject); and NSLog(@"This object is on address %p\n",&anotherObject); 我确实有两个不同的地址。 我

我创建了同一类的两个对象。 在方法中执行此操作时:

NSLog(@"This object is on address %p\n",&self);`
对于同一类的两个不同对象,我得到相同的地址

当我在课外做这件事时:

NSLog(@"This object is on address %p\n",&myObject);
and
NSLog(@"This object is on address %p\n",&anotherObject);
我确实有两个不同的地址。 我是否遗漏了自我工作的一些方面?它不应该是指向对象的指针吗

不同角度: 如何从对象类的方法中获取对象的地址

谢谢您的时间。

我相信%p不需要您传递变量的地址。这是一个无效的操作。我不是在我的开发机器上亲自测试这一点,而是尝试做:

NSLog(@"This object is on address %p\n", self);
我相信%p不需要您传递变量的地址。这是一个无效的操作。我不是在我的开发机器上亲自测试这一点,而是尝试做:

NSLog(@"This object is on address %p\n", self);

在目标C中,对类的引用已经是指针。通过获取self或myObject的地址,您可以获得存储在堆栈上的变量的地址

所以只需打印:

NSLog(@"This object is on address %p\n", self);


将打印类的地址。

在目标C中,对类的引用已经是指针。通过获取self或myObject的地址,您可以获得存储在堆栈上的变量的地址

所以只需打印:

NSLog(@"This object is on address %p\n", self);


将打印类的地址。

不,您必须传递地址,因为varargs在C中如何工作。这不是魔术。不,您必须传递地址,因为varargs在C中如何工作。这不是魔术。这是一个无关的结果,因为它是当前堆栈帧中self的地址,不是调用函数中self的地址。这是一个不相关的结果,因为它是当前堆栈帧中self的地址,而不是调用函数中self的地址。