当前位置:  开发笔记 > 编程语言 > 正文

通过多个功能通过引用传递

如何解决《通过多个功能通过引用传递》经验,为你挑选了1个好方法。

大家好.我正在为学校做一个项目,我需要通过多个函数通过引用传递一些参数.我理解如何通过引用将变量声明的位置传递给另一个函数,如下所示:

main() {
  int x = 0;
  int y = 0;
  int z = 0;

  foo_function(&x, &y, &z);
}

int foo_function(int* x, int* y, int* z) {
  *x = *y * *z;
  return 0;
}

但是,如何将foo函数中的x,y和z传递给另一个函数?像这样的东西给了我各种编译器警告.

int foo_function(int* x,  int* y, int* z) {
  *x = *y * *z;
  bar(&x, &y, &z);
  return 0;
}

int bar(int* x, int* y, int* z) {
  //some stuff
}

Reed Copsey.. 11

只需使用:

bar(x, y, z);

X,Y和Z已经是指针 - 直接传递它们.

记住 - 指针是内存中的一个位置.位置不会改变.取消引用指针(使用*x = ...)时,您将在该位置设置值.但是当你将它传递给一个函数时,你只是在内存中传递该位置.您可以将相同的位置传递到另一个函数,它工作正常.



1> Reed Copsey..:

只需使用:

bar(x, y, z);

X,Y和Z已经是指针 - 直接传递它们.

记住 - 指针是内存中的一个位置.位置不会改变.取消引用指针(使用*x = ...)时,您将在该位置设置值.但是当你将它传递给一个函数时,你只是在内存中传递该位置.您可以将相同的位置传递到另一个函数,它工作正常.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有