Δευτέρα, 7 Νοεμβρίου 2011

Ο Τελεστής Αύξησής και μείωσης στην C++

Να και ένα σημείο που πολλοί μάλλον δεν του δίνουν την απαραίτητη σημασία και μπερδεύονται: "Ο Τελεστής Αύξησής σαν πρόθεμα (πριν) και επίθεμα (Μετά)
Πρόθεμα (++counter;): Σε αυτή την περίπτωση η πρόταση απόδοσης τιμής ορίζει στην C++ να αυξήσει πρώτα την τιμή μετρητή και μετά να αποδώσει το αποτέλεσμα στην μεταβλητή.
Επίθεμα (counter++;): Με αυτή την πρόταση απόδοσης τιμής, η C++ δίνει την τρέχουσα τιμή της μεταβλητής. Επιπλέον, ο τελεστής αύξησης σε θέση επιθέματος ορίζει στην C++ να αυξήσει κατά ένα την τρέχουσα τιμή της μεταβλητής counter.
Βλέπω πάνω στο βιβλίο στο σημείο με τους τελεστές αύξησης και μείωσης σχεδιασμένο με μολύβι ένα μεγάλο ερωτηματικό από τον προηγούμενο ιδιοκτήτη του βιβλίου. Υποπτεύομαι ότι ερωτηματικό, πηγαίνει σχετικά με όλη την φάση μεταξύ προθέματος και επιθέματος, και θα συνοδευόταν κάλλιστα και με ένα εξίσου μεγάλο "γιατί". σε ακέραιες τιμές με θετικό πρόσημο, μοιάζει να μην παίζει κανέναν απολύτως λόγο η θέση του Τελεστή, και το βιβλίο δεν δίνει κανένα επαρκές παράδειγμα σχετικά με την χρησιμότητα της θέσης του τελεστή.
Να σημειωθεί ότι ο Τελεστής μείωσης (--) λειτουργεί με τον ίδιο τρόπο. Με επίθεμα (counter--;) και με πρόθεμα (--counter;) και με την ίδια ακριβώς φιλοσοφία για την θέση του Τελεστή.   
 
Στην πράξη:
αρχείο pre_post.cpp

#include <iostream.h>
void main(void)
{
    int small = 0;
    int big = 1000;

    cout << "Η μεταβλητή small είναι " << small << endl;
    cout << "Η μεταβλητή small++ δίνει " << small++ << endl;
    cout << "Η μεταβλητή small καταλήγει στο " << small << endl;

    cout << "H μεταβλητή big είναι " << big << endl;
    cout << "H μεταβλητή ++big δίνει " << ++big << endl;
    cout << "Η μεταβλητή big καταλήγει στο " << big << endl;
}

αποτέλεσμα των εντολών:
Η μεταβλητή small είναι 0
Η μεταβλητή small++ δίνει 0
Η μεταβλητή small καταλήγει στο 1
Η μεταβλητή big είναι 1000
Η μεταβλητή ++big δίνει 1001
Η μεταβλητή big καταλήγει στο 1001 

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου