Ich komme aus einer dominant objektorientierten Programmiersprache und versuche die Funktionsweise von C ein wenig mehr zu verstehen, entschied mich dafür ein kleines Programm zu machen.C - als Referenz übergeben?
Das Problem, das ich habe, ist, was in der Regel mit der Verwendung von DI angesprochen wird, wie übergebe ich die Referenz eines Wertes an eine andere Funktion, so dass es arithmetische Berechnungen durchführen kann, ohne globale Variablen zu verwenden?
Betrachten Sie das folgende Programm:
#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);
}
Ausgang:
0 should be 0
0 should be 10
0 should be 0
Dies schien den Trick zu tun. Stört es mich, zu fragen, was das & tatsächlich anders macht? –
@JaheeKaje übergeben Sie den Zeiger auf den Wert, indem Sie '& value' ausführen, das' & 'gibt den Wert des Zeigers an. Und dann in der Funktion dereferenzieren Sie den Zeiger, so dass Sie den tatsächlichen Wert ändern können – tgdn