C-添加指针和更改价值

  • 本文关键字:添加 指针 c pointers
  • 更新时间 :
  • 英文 :


我有一个代码:

int double(int *x) {
    *x = (*x) + (*x);
    return *x;
}
int main() {
   int i = 10;
   int j;
   j = double(&i);
   printf("i= %d, j = %dn", i, j);
   return 0; 

}

输出为i = 20,j = 20。为什么我的价值更改?

,因为您将指向i的指针传递给双功能,这使其可以更改其值。这被称为"通过参考"。如果您只是使用INT而不是指针,那么我的价值就不会改变。这称为"按值"。

更改了i的输出,因为您已在函数double中编写了*x = (*x) + (*x);,您使用j = double(&i);调用,因此它将用x = x + x使用CC_5,即20

如果您发送指针,则允许该int的内容更改。

j = double(&i);

您正在通过i的地址,因此双功能可以更改其值。

如果您可以通过,

j = double(i);

i的值将保持不变。

最新更新