Een lvalue (afkorting van "locatorwaarde") is een variabele of andere uitdrukking die een geheugenlocatie aangeeft. Met andere woorden:het is een linkerwaarde, of iets waaraan u een waarde kunt toewijzen.
Een constante, een variabele, een array of een structuurlid kunnen allemaal als lwaarden worden beschouwd, omdat ze aan deze vereiste voldoen.
Hier zijn enkele voorbeelden van lwaarden in C:
```c
int-array[10];
int* pointer_naar_array =&array;
int hoofd() {
array[0] =10; // array[0] is een lwaarde
(*pointer_naar_array) =10; // *pointer_to_array is ook een lwaarde
retour 0;
}
```
Niet alle uitdrukkingen zijn echter lwaarden. Functieaanroepen en letterlijke waarden worden bijvoorbeeld niet als lwaarden beschouwd.
```c
int functie(int a) {
// a is geen lwaarde
retourneer een + 10;
}
int hoofd() {
// 10 is geen lwaarde
10 + 5;
}
```
Het onderscheid tussen lvalues en rvalues (expressies die geen geheugenlocatie aanduiden) is cruciaal omdat alleen lvalues kunnen worden gewijzigd met een toewijzingsoperator (=).
Hier is een voorbeeld om het verschil aan te tonen:
```c
int hoofd() {
// a is een lwaarde
int a =10;
// b is een rwaarde
int b =10 + 5;
een +=5; // Dit is geldig, aangezien a een lwaarde is
// Dit is een fout tijdens het compileren, aangezien b een rwaarde is
b+=5;
}
```
Samenvattend is een lvalue dus alles wat overeenkomt met een geheugenlocatie en dat zich aan de linkerkant van een toewijzing (=) kan bevinden. |