当单指针可以在Objective-C中工作时,为什么要使用双指针?

用户名

我知道使用指针的好处,但是双指针是我真正不明白的。有人告诉我,当您希望该方法修改传入的参数值时,5使用双指针。给定以下示例,将在日志中打印。那为什么要在其中使用双指针void changeInt(int **i)呢?

int main (int argc, const char * argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    int *a = 1;

    changeInt(&a);
    NSLog(@"%i", a);
    [pool drain];
    return 0;
}

void changeInt(int *i)
{
    *i = 5;
}
马特

不需要带标量(int)的双指针显然,您需要的只是一个指针。

但是一个对象已经一个指针。因此,要对一个对象执行相同的操作,您需要一个双指针。典型的用例是NSError**

+ (id)stringWithContentsOfFile:(NSString *)path
                      encoding:(NSStringEncoding)enc
                         error:(NSError **)error

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C 中的单指针与双指针

在链表中按顺序插入节点时,为什么要使用双指针?

C函数中双指针和单指针的区别

单指针和双指针附加的区别

当您可以直接将指针传递给C函数时,为什么要使用memcpy()?

为什么要使用指针?

在 C 中使用指针时,我们何时以及为什么需要使用 malloc?

理解C ++中双指针和单指针内存分配之间的区别的问题

将单指针和双指针传递给C中的函数

单指针和双指针数组之间的区别

将简单指针作为双指针传递给函数

双指针和单指针共享相同的变量

作为双指针(**)和单指针(*)传递的参数

如何将单指针赋值为双指针

将2d数组传递给函数时,单指针和双指针有什么区别?

当您可以直接将变量作为指针指向时,为什么要在C中创建指针?

为什么在C中将指针转换为双指针?

在 C 中,如果将双指针分配给值,为什么指针变量为 0?

在C中是否可以将指针转换为双指针?

为什么我们需要使用双指针来访问二维数组?

为什么当指针是变量时指针上的方法可以工作,但不是呢?

在Go中使用自定义http.Handler时为什么要使用指针?

创建带有关联指针的对象时,为什么要使用“ new”?

为什么要使用双重间接?或为什么使用指向指针的指针?

为什么要使用指针而不是对象本身?

为什么要使用__stdcall作为函数指针

为什么要使用字符指针的大小

为什么在此堆栈实现中需要使用&传递指向结构的指针

快速将双指针数组转换为单指针,可能是连续的