Я понимаю преимущество использования указателя, но двойной указатель - это то, чего я действительно не понимаю. Мне сказали, что двойной указатель используется, когда вы хотите, чтобы метод изменил значение передаваемого вами параметра. Учитывая приведенный ниже пример, 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;
}