Objective c 通过i和&;我需要一个函数

Objective c 通过i和&;我需要一个函数,objective-c,c,Objective C,C,以下几对支架之间有什么区别 int i; doSomethingWith(i); 及 首先,你要传递i的值。在第二秒钟,您将在内存中传递变量i的地址 看一看关于指针之类的视频。首先,你要传递i的值。在第二秒钟,您将在内存中传递变量i的地址 看一看指针之类的视频。在C语言中,&是操作符的地址。因此,不是像第一次调用那样传递i的副本,而是传递i或&i的地址,这意味着函数可以直接修改它 该函数将如下所示: void doSomethingWith (int *var); 这意味着它接受

以下几对支架之间有什么区别

   int i;
   doSomethingWith(i);


首先,你要传递i的值。在第二秒钟,您将在内存中传递变量i的地址


看一看关于指针之类的视频。

首先,你要传递i的值。在第二秒钟,您将在内存中传递变量i的地址


看一看指针之类的视频。

在C语言中,&是操作符的地址。因此,不是像第一次调用那样传递
i
的副本,而是传递
i
&i
的地址,这意味着函数可以直接修改它

该函数将如下所示:

void doSomethingWith (int *var);
这意味着它接受一个指向整数的指针(保存地址的东西)(在本例中为
i
)。然后,要直接修改
i
,函数可以执行以下操作:

*var = 5;
这是解引用运算符,它提供了实际存储在该地址的内容。此调用将为存储在与&i一起传递的内存位置的内容分配5


任何一本C语言教科书在谈到指针时都应该详细解释这一点。

在C语言中,&是运算符的地址。因此,不是像第一次调用那样传递
i
的副本,而是传递
i
&i
的地址,这意味着函数可以直接修改它

该函数将如下所示:

void doSomethingWith (int *var);
这意味着它接受一个指向整数的指针(保存地址的东西)(在本例中为
i
)。然后,要直接修改
i
,函数可以执行以下操作:

*var = 5;
这是解引用运算符,它提供了实际存储在该地址的内容。此调用将为存储在与&i一起传递的内存位置的内容分配5

任何C语言教科书在谈到指针时都应该详细解释这一点。

  • 传递“i”-->传递i的值(内存位置内的值)
  • 传递'&i'-->传递对'i'内存位置的引用
      • 传递“i”-->传递i的值(内存位置内的值)
      • 传递'&i'-->传递对'i'内存位置的引用

      @Kenthomass Binky实际上与我的一门课程——我想是操作系统——有关。伟大的视频。@Kenthomass Binky实际上在我的一个课程《我想操作系统》中被链接到了。很好的视频。谢谢你抽出时间。这就是我所想的。所以通过使用去引用操作符,你得到了内存位置的值,从而节省了一点内存(整数占用的字节数)?去引用操作符提取了存储在你给它的内存位置的内容。指针包含一个内存位置。如果要输出
      var
      ,您会看到类似0x22ff44的内容:它所持有的地址
      *var=5
      在0x22ff44中存储一个5(或无论i的地址是什么),因此
      i
      将等于5。整数
      i
      和指针
      var
      仍将使用内存(用于函数的生命周期)。感谢您抽出时间。这就是我所想的。所以通过使用去引用操作符,你得到了内存位置的值,从而节省了一点内存(整数占用的字节数)?去引用操作符提取了存储在你给它的内存位置的内容。指针包含一个内存位置。如果要输出
      var
      ,您会看到类似0x22ff44的内容:它所持有的地址
      *var=5
      在0x22ff44中存储一个5(或i的地址是什么),因此
      i
      将等于5。整数
      i
      和指针
      var
      仍将使用内存(用于函数的生命周期)。