Für mich sind diese Begriffe nicht austauschbar, können aber manchmal ähnliche Dinge darstellen.
Nehmen Sie zum Beispiel:
std::vector<int> v = { 1, 3, 42 };
Dieser Vektor hat drei Elemente. Jedes Element hat einen Wert, der Wert des dritten Elements ist 42. Aber der Vektor enthält auch drei Werte [beachten Sie den Unterschied zwischen "enthält", nicht "hat"].
In meinem Vokabular ist ein Wert "der Inhalt gerade dieses momment".
Wenn ich tun:
v[2] += 6;
dann das dritte Element ist immer noch das gleiche dritte Element, wie es vorher war, aber sein Wert ist jetzt 48
, wenn es 42
früher war. Das Element bleibt also gleich, der Wert ändert sich.
Natürlich kann ein "Wert" eines Elements ein Zeiger (std::vector<int*>
) sein, der dann auf einen Wert [oder NULL
zeigt, der keinen Wert hat]. Referenzen haben auch einen Verweis und einen Wert im Referent.
"Vor allem http://www.cplusplus.com verwenden beide Begriffe." - Vor allem http://www.cplusplus.com ist ein großer Haufen von stinkendem Bullshit. Meide diesen Ort wie die Pest. Sie sind in keiner Weise autoritativ für C++, und sie verwenden ** oft ** eine verwirrende oder geradezu falsche Terminologie. –
Ich würde http://en.cppreference.com/ eher empfehlen. –
Dies ist eine gute Frage, da sie Auswirkungen auf die Interpretation des Standards hat. es ist falsch, es zu verwerfen. –