objective-c - 分配指针 - Objective-C

标签 objective-c xcode variables pointers

过去,我主要使用 .NET 进行编程,因此我不必特别担心指针之类的事情,但最近我开始接触 Objective-C,并且我决定尝试并充分理解内存管理的工作原理。

所以,首先我想说我知道你不应该为 int 做指针,因为它无助于提高效率,但这主要是出于好奇的实验。

如果我这样创建一个整数指针: int *int指针; 当我这样做时,它实际上是指针指向的内存位置怎么会被分配:

intPointer = 43;

按照我的理解,这样的操作不应该是改变指针的实际内存地址吗?

这段代码也是如此:

int *intPointer;
int integer;

integer = 43;
intPointer = integer;

相同的结果,但是当我使用 CLLocationCoordinate2D 并尝试使指针指向 CLLocationCoordinate2D 变量时,我实际上必须这样做:

CLLocationCoordinate2D *coordinatePointer = &coordinate;

我认为这是正确的方法。

这是我在 stackoverflow 上发表的第一篇文章,我希望它足够好,能够得到解答。 谢谢!

最佳答案

intPointer = integer;

这只适用于隐式转换。指针只是一个内存偏移量,它是数字,所以它可以从一个 int 分配(你应该得到编译器警告)。

在CLLocationCoordinate2D 的情况下,struct 无法转换为指针,因此编译器会报错。当您编写 &coordinate 时,它会提供对变量 coordinate 的引用,可以将指针分配给该变量。

关于objective-c - 分配指针 - Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17508464/

相关文章:

php - Apple 推送通知的时长

objective-c - 全屏 : AVPlayerLayer is not resized when resizing its parent view

c - 使用浮点二进制格式的变量如何存储值 0.0

ruby - 迭代数组以在 ruby​​ 中创建变量

objective-c - 从 Plist 中存储和检索

ios - 在点击 UITextField 时显示 UITableView

ios - 数组下标不是整数错误

ios - XCode swift HTTPS : String(data: data! 编码:NSUTF8StringEncoding ) 返回 nil

xcode - 为什么我的iPhone模拟器的应用程序不断崩溃?

javascript - jQuery 从列表中获取最大的数字