我從顯性面向對象的編程語言來,並試圖瞭解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