Φροντιστηριακές ασκήσεις

  1. Συμπληρώστε τον πίνακα με τις τιμές των μεταβλητών μετά την εκτέλεση κάθε μιας από τις παρακάτω εντολές.
            int a, b, c;
            int *ip1, *ip2, *ip3;

            a = 3;
            b = 4;
            ip1 = &a;
            *ip1 = 8;
            ip3 = &c;
            ip2 = ip3;
            b = *ip1;
            *ip2 = *ip1;
    a b c ip1 ip2 ip3
    Αρχή - - - - - -
    a = 3 3 - - - - -
    b = 4 3 4 - - - -
    ip1 = &a 3 4 - &a - -
    *ip1 = 8            
    ip3 = &c            
    ip2 = ip3            
    b = *ip1            
    *ip2 = *ip1            
  2. Υπολογίστε τους τύπους των εκφράσεων δεξιά και αριστερά από κάθε ανάθεση και γράψτε ποιες από τις παρακάτω γραμμές είναι σωστές και ποιες όχι.
            int a, b, c, *p1, *p2, *p3;
            double da, db, dc, *pd1, *pd2, *pd3;

            p1 = &a;
            *p1 = 4;
            p2 = &p1;
            *p2 = *c;
            p3 = a;
            p2 = p3;
            pd1 = p2;
            pd2 = &da;
            dc = *pd3;
            db = *p2;
            &a = 43;