我从显性面向对象的编程语言来,并试图了解C的功能多一点所以决定做一个小程序来做到这一点。C - 通过参考?
我遇到的问题是什么,通常是通过使用DI的解决,我怎么传递值的引用另一个函数,以便它可以在不使用全局变量对其执行算术?
考虑下面的程序:
#include <stdio.h>
#include <stdlib.h>
int doStuff(int v)
{
v = v + 10; // main->value = 10
}
int otherStuff(int v)
{
v = v - 10; // main->value = 0
}
int main()
{
int value = 0;
int stop = 0;
do
{
printf(" %i should be 0 \n", value);
doStuff(value); // "value" = 10
printf(" %i should be 10 \n", value);
otherStuff(value); // "value" = 0
printf(" %i should be 0 \n", value);
exit(0);
if(value >= 10)
{
stop = 1;
}
} while(!stop);
}
输出:
0 should be 0
0 should be 10
0 should be 0
这似乎是个伎俩。你介意我问什么&实际上有什么不同? –
@JaheeKaje你基本上做'&value'传递指针值时,'&'给出了指针的值。然后在功能取消引用指针,所以你可以修改实际值 – tgdn