// threepointers.cpp #include using namespace std; int main() { float a = 2, b = 3, c = 4; float *pt1 = &a; //ορίζω την μεταβλητή pt1 ως δείκτη σε float, // και τον αρχικοποιώ να δείχνει στην διεύθυνση του a float *pt2 = NULL, *pt3 = NULL; // ορίζω τις μεταβλητές pt2,pt3 ως δείκτες σε float // και τις αρχικοποιώ στην τιμή NULL (μηδέν). // Αρχικοποιώ τους δείκτες pt2 και pt3 ώστε να δείχνουν // στις διευθύνσεις των b και c αντίστοιχα: pt2 = &b; pt3 = &c; cout << "a= " << a << ", " << "&a= " << &a << ", " << "*ptr1= " << *pt1 << "\n"; cout << "b= " << b << ", " << "&b= " << &b << ", " << "*ptr2= " << *pt2 << "\n"; cout << "c= " << c << ", " << "&c= " << &c << ", " << "*ptr3= " << *pt3 << "\n\n"; cout << "Θα αλλάξω το c με τον ptr3\n"; *pt3 = 314; cout << "c = " << c << ", " << "&c = " << &c << ", " << "*ptr3 = " << *pt3 << "\n\n"; // Η θεμελιώδης διαφορά της έκφρασης ptr2 = ptr3 με την *ptr2 = *ptr3 // Αλλάζω την κατεύθυνση του δείκτη ptr2: cout << "Κάνω τον δείκτη pt2 να δείχνει στην τιμή που δείχνει ο pt3: pt2 = pt3\n"; pt2 = pt3; cout << *pt2 << " " << *pt3 << "\n"; cout << "a= " << a << " b= " << b << " c= " << c << "\n\n"; cout << "Κάνω τον δείκτη pt2 να δείχνει πάλι στο b: pt2 = &b; \n"; pt2 = &b; cout << "*pt2= " << *pt2 << "\n\n"; // Αλλάζω την τιμή του αντικειμένου στο οποίο δείχνει ο ptr2: cout << "Αλλάζω την τιμή του b και της δίνω την τιμή του c: *pt2 = *pt3; \n"; cout << "Πριν: " << "*pt2= " << *pt2 << " " << " *pt3= " << *pt3 << "\n"; *pt2 = *pt3; //cout << "*pt2 = *pt3; \n"; cout << "Mετά: " << "*pt2= " << *pt2 << " " << "*pt3= " <<*pt3 << "\n"; cout << "a= " << a << " b= " << b << " c= " << c << "\n"; return 0; }