Προγραμματισμός

Γνώση Υπολογιστών >> Προγραμματισμός >  >> C /C + + Προγραμματισμός

Τι είναι η τιμή l στο πρόγραμμα c;

Μια τιμή lvalue (συντομογραφία για "τιμή εντοπισμού") είναι μια μεταβλητή ή άλλη έκφραση που υποδηλώνει μια θέση μνήμης. Με άλλα λόγια, είναι μια αριστερή τιμή ή κάτι στο οποίο μπορείτε να εκχωρήσετε μια τιμή.

Μια σταθερά, μια μεταβλητή, ένας πίνακας ή ένα μέλος δομής μπορούν όλα να θεωρηθούν lvalues, καθώς πληρούν αυτήν την απαίτηση.

Ακολουθούν μερικά παραδείγματα lvalues ​​στο C:

```γ

πίνακας int[10];

int* pointer_to_array =&array;

int main() {

πίνακας[0] =10; // ο πίνακας[0] είναι μια τιμή l

(*pointer_to_array) =10; // *pointer_to_array είναι επίσης μια τιμή lvalue

επιστροφή 0;

}

```

Ωστόσο, δεν είναι όλες οι εκφράσεις lvalues. Για παράδειγμα, οι κλήσεις συναρτήσεων και οι κυριολεκτικές τιμές δεν θεωρούνται lτιμές.

```γ

συνάρτηση int(int a) {

// Το a δεν είναι τιμή lvalue

επιστρέφει ένα + 10;

}

int main() {

// Το 10 δεν είναι τιμή lvalue

10 + 5;

}

```

Η διάκριση μεταξύ lvalues ​​και rvalues ​​(εκφράσεις που δεν υποδηλώνουν θέση μνήμης) είναι κρίσιμη επειδή μόνο οι lvalues ​​μπορούν να τροποποιηθούν με έναν τελεστή εκχώρησης (=).

Ακολουθεί ένα παράδειγμα για να καταδείξετε τη διαφορά:

```γ

int main() {

// a είναι μια τιμή l

int a =10;

// b είναι μια τιμή r

int b =10 + 5;

a +=5; // Αυτό ισχύει, καθώς το a είναι μια τιμή lvalue

// Αυτό είναι ένα σφάλμα χρόνου μεταγλώττισης, καθώς το b είναι μια τιμή rvalue

b +=5;

}

```

Έτσι, συνοπτικά, μια τιμή l είναι οτιδήποτε αντιστοιχεί σε μια θέση μνήμης και μπορεί να βρίσκεται στην αριστερή πλευρά μιας ανάθεσης (=).

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα