Wenn ich dieses Programm:Muss eine Variable, die auf eine andere Variable verweist, erneut ausgewertet werden, wenn sich diese Variable ändert?
BEGIN
string = "Big Blue Hats."
count = 1
char = string[count]
WHILE char NOT '.'
count = count + 1
#do I need to evaluate 'char = string[count]' again in order to update 'char'?
ENDWHILE
END
Muss ich in der Schleife char = string[count]
, um für den Wert von char
einschließen müssen char[2]
verweisen aktualisiert werden?
Ich nehme an, es hängt davon ab, ob Variablen die Datenwerte speichern, an die sie gerichtet sind (z. B. 'B'
) oder die Anweisungen, um zu diesem Wert zu gelangen (string[count]
)? Was genau ist in einer Variablen gespeichert? Variiert das mit der Sprache?
Das hängt von der Sprache ab, ob das Standardverhalten _call by reference_ oder _call by value_ ist. –
@SohaibFarooqi Sie erwähnen "Standardverhalten", also bedeutet das, dass dies vom Programmierer geändert oder eingestellt werden kann? – GoatsWearHats
Aufruf per Referenz oder Wert bezieht sich auf aufrufende Funktionen, nicht auf die Auswertung von Anweisungen. Dies kann niemals vom Programmierer geändert oder eingestellt werden, es ist eine Eigenschaft der Sprache. (Aber natürlich können Sie Referenzen nach Wert übergeben ...) – alain