Προγραμματισμός Ι (ΗΥ120)

Σχετικά έγγραφα
Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (ΗΥ120)

Διαδικασιακός Προγραμματισμός

Ανάπτυξη και Σχεδίαση Λογισμικού

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

a = 10; a = k; int a,b,c; a = b = c = 10;

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Βασικά στοιχεία της Java

Εισαγωγή στη γλώσσα προγραμματισμού C++

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

Στοιχειώδης προγραμματισμός σε C++

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Δομημένος Προγραμματισμός (ΤΛ1006)

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Ανασκόπηση στα ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Τύποι δεδομένων, τελεστές, μεταβλητές

Προγραμματισμός I (Θ)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Προγραμματισμός Ι (ΗΥ120)

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

3. Εκφράσεις και έλεγχος ροής

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Η γλώσσα προγραμματισμού C

Εισαγωγή στον Προγραμματισμό

8. Συνθήκες ελέγχου, λογικοί τελεστές

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

5 &6. Τύποι δεδομένων, τελεστές και

Δυαδικό Σύστημα Αρίθμησης

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage(

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

οµές Επιλογής Εντολές if και switch

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Βασικά Στοιχεία της Java

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

ΠΛΗΡΟΦΟΡΙΚΗ I. 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα

Η γλώσσα προγραμματισμού C

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 11

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

Εισαγωγή στον Προγ/μό Υπολογιστών

Δεδομένα, τελεστές, είσοδος/έξοδος

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

2. Δήλωση μεταβλητών. #include <avr/io.h> #include <util/delay.h> unsigned char i=0xa0; register unsigned char i asm("r3");

Προγραμματισμός Η/Υ (ΤΛ2007 )

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Ελίνα Μακρή

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Ανάπτυξη και Σχεδίαση Λογισμικού

Διάλεξη 19: Χαμηλού Επιπέδου Προγραμματισμός I

Ηλεκτρονικοί Υπολογιστές

Εισαγωγή στον Προγραμματισμό

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Βασικά Στοιχεία της Java

Προγραμματισμός Ι (ΗΥ120)

Διάλεξη 22η: Επιπλέον στοιχεία της C

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

3 η Διάλεξη C++ - Βασικοί τύποι δεδομένων. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Εισαγωγή στον Προγραμματισμό

Transcript:

Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές

Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι: <όνομα> = <έκφραση> 1. Αποτιμάται η έκφραση στο δεξί μέρος. 2. Η τιμή που παράγεται αποθηκεύεται στην μεταβλητή το όνομα της οποίας δίνεται στο αριστερό μέρος. Η έκφραση μπορεί να συμπεριλαμβάνει μεταβλητές, στην οποία περίπτωση επιστρέφεται η τιμή που έχει αποθηκευτεί στην μνήμη τους. Στο δεξί μέρος μπορεί να εμφανίζεται η ίδια μεταβλητή που εμφανίζεται και το αριστερό.

Η 2πλή Προσωπικότητα του Τελεστή Ανάθεσης 3 Η ανάθεση αποτελεί ταυτόχρονα μια έκφραση αποτίμησης που επιστρέφει την τιμή που ανατίθεται! Μια έκφραση ανάθεσης μπορεί να χρησιμοποιηθεί ως τμήμα άλλων, πιο πολύπλοκων εκφράσεων. Π.χ. επιτρέπονται εκφράσεις «αλυσιδωτής» ανάθεσης τιμών (από δεξιά προς τα αριστερά), όπου όλες οι μεταβλητές παίρνουν την τιμή που εμφανίζεται στο δεξί μέρος.

4 int i,j,k; i = 1; j = 1+1; k = i+j; i = k = j; j = (i=3) + k; i = i+1; /* i γίνεται 1 */ /* j γίνεται 2 */ /* k γίνεται 3 */ /* i,k γίνονται 2 */ /* i γίνεται 3, j γίνεται 5 */ /* i γίνεται 4 */

Τελεστής Ανάθεσης: Λίγοι Ιδιωματισμοί 5 Πολλές φορές χρησιμοποιούμε την ανάθεση για να αλλάξουμε την τιμή μιας μεταβλητής σε σχέση με την παλιά τιμή της (ίδιας μεταβλητής). Για το πετύχουμε αυτό, γράφουμε: <όνομα> = <όνομα><op><έκφραση> όπου <op> ένας τελεστής. Το ίδιο αποτέλεσμα μπορεί να επιτευχθεί με χρήση της «σχετικής» ανάθεσης <op>=, ως εξής: <όνομα> <op>= <έκφραση> Προσοχή στις προτεραιότητες η έκφραση που εμφανίζεται στα δεξιά αποτιμάται πριν εφαρμοστεί ο τελεστής <op>

Δηλαδή; 6 int i,j,k; i = 1; j = 2; i += 2; j *= i+1; k = (i+=j) + 1; /* i γίνεται 3 */ /* j γίνεται 8 */ /* i γίνεται 11, k γίνεται 12 */

Κι άλλη Ειδική Περίπτωση: Τελεστές Αυξομείωσης Μια ειδική περίπτωση ανάθεσης είναι η αύξηση ή μείωση της τιμής μιας μεταβλητής κατά 1: <όνομα> = <όνομα><op>1 <όνομα> <op>= 1 όπου <op> ο τελεστής + ή - Παρόμοιο αποτέλεσμα μπορεί να επιτευχθεί με χρήση των τελεστών ++ ή -- : <όνομα>++ ή <όνομα>-- ++<όνομα> ή --<όνομα> Όταν ο τελεστής εμφανίζεται πριν το όνομα της μεταβλητής, τότε ως αποτέλεσμα της έκφρασης επιστρέφεται η νέα τιμή της μεταβλητής. Όταν εμφανίζεται μετά, ως αποτέλεσμα της έκφρασης επιστρέφεται η παλιά τιμή της μεταβλητής 7

int i,j,k; i = 0; 8 i++; j = i++; k = --j; i = (k++) + 1; i = (++k) + 1; /* i γίνεται 1 */ /* j γίνεται 1, i γίνεται 2 */ /* k γίνεται 0, j γίνεται 0 */ /* i γίνεται 1, k γίνεται 1 */ /* i γίνεται 3, k γίνεται 2 */

Προσοχή, προσοχή, προσοχή!!! Καμιά φορά τα φαινόμενα απατούν 9 Φροντίστε να ξέρετε τι ακριβώς κάνετε int i; i = 0; i = (i++); i = 0; i = (++i); i = 0; i = (i=i+1); i = 0; i = (i++) + (i++); i = 0; i = (++i) + (++i); i = 0; i = (i=i+1) + (i=i+1); gcc 4.1.2 (SUSE) /* i γίνεται 1 */ /* i γίνεται 1 */ /* i γίνεται 1 */ /* i γίνεται 2 */ /* i γίνεται 4 */ /* i γίνεται 4 */ gcc 3.4.2 (mingw32) /* i γίνεται 0 */ /* i γίνεται 1 */ /* i γίνεται 1 */ /* i γίνεται 2 */ /* i γίνεται 4 */ /* i γίνεται 3 */

Αριθμητικοί Τελεστές για int / float / double + πρόσθεση δύο τιμών - αφαίρεση δύο τιμών * πολλαπλασιασμός δύο τιμών / διαίρεση δύο τιμών % υπόλοιπο διαίρεσης δύο τιμών (μόνο για ακέραιους) x = y*(x/y) + x%y, όμως δεν ισχύει πάντα η «μαθηματική» ιδιότητα του υπολοίπου (>=0), π.χ. όταν ο αριθμητής είναι αρνητικός. Π.χ. -5%4 ή -5%-4. 10 Η αποτίμηση γίνεται από αριστερά προς τα δεξιά. Τα / και % έχουν μεγαλύτερη προτεραιότητα αποτίμησης σε σχέση με τα + και -.

Πράξεις & Τελεστές σε Επίπεδο Bits & δυαδικό «and» δυαδικό «or» ^ δυαδικό «xor» ~ δυαδικό «not» << αριστερή ολίσθηση (LSB (least significant bit) -> MSB (most significant bit)) Στην αριστερή ολίσθηση τα «λιγότερο σημαντικά» bits παίρνουν πάντα την τιμή 0 >> δεξιά ολίσθηση (MSB (most significant bit) -> LSB (least significant bit)) Στη δεξιά ολίσθηση τα «περισσότερο σημαντικά» bits παίρνουν την τιμή Του περισσότερο σημαντικού bit (arithmetic shift) αν το όρισμα ερμηνεύεται ως signed 0 (logical shift), αν το όρισμα ερμηνεύεται ως unsigned. 11

char a,b,c; unsigned char d; 12 a = 0x61; b = 0x62; c = a b; c = a&b; c = a^b; d = c = ~a; d = d>>3; c = c>>3; /* a γίνεται 01100001 */ /* b γίνεται 01100010 */ /* c γίνεται 01100011 */ /* c γίνεται 01100000 */ /* c γίνεται 00000011 */ /* d,c γίνεται 10011110 */ /* d γίνεται 00010011 */ /* c γίνεται 11110011 */

Γρήγορος Πολλαπλασιασμός / Διαίρεση 13 Με τον τελεστή ολίσθησης bits μπορούμε να υλοποιήσουμε γρήγορες πράξεις πολλαπλασιασμού και διαίρεσης με τιμές που είναι δυνάμεις του 2: v = v<<i; /* v = v*2 i */ v = v>>i; /* v = v/2 i */ Και φυσικά μπορούμε να υπολογίσουμε εύκολα τις δυνάμεις του 2: v = 1<<i; /* v = 2 i */

14 short int i; i = 5; i = i<<4; i = i>>2; i = 1<<3; i = 1<<8; /* i γίνεται 00000000 00000101 */ /* i γίνεται 00000000 01010000 */ /* i γίνεται 00000000 00010100 */ /* i γίνεται 00000000 00001000 */ /* i γίνεται 00000001 00000000 */

Σχεσιακοί και Λογικοί Τελεστές 15 ==,!= >,>= <,<=! ισότητα, ανισότητα μεγαλύτερο, μεγαλύτερο ίσο μικρότερο, μικρότερο ίσο λογική άρνηση Οι σχεσιακοί και λογικοί τελεστές χρησιμοποιούνται για την κατασκευή λογικών εκφράσεων (συνθηκών). Δεν υπάρχει λογικός τύπος (boolean). Το αποτέλεσμα μιας λογικής έκφρασης είναι 0 ή 1 (για ψευδές ή αληθές), και μπορεί να χρησιμοποιηθεί και ως ακέραιος Κλασική πηγή λαθών στην C. Η τιμή 0 ερμηνεύεται ως «ψευδές» (false) Οποιαδήποτε τιμή διάφορη του 0 ως «αληθές» (true).

16 int a=1, b=2, c; c = (a == b); c = (a!= b); c = (a <= b); c = ((c + a)!= b); c = (!a ==!b); c = (a!= b) +!(a == b) c =!( (a!= b) +!(a == b) ); /* c γίνεται 0 */ /* c γίνεται 1 */ /* c γίνεται 1 */ /* c γίνεται 0 */ /* c γίνεται 1 */ /* c γίνεται 2 */ /* c γίνεται 0 */

Λογικοί Τελεστές λογικό «ή» && λογικό «και» Οι λογικοί σύνδεσμοι χρησιμοποιούνται για την κατασκευή σύνθετων λογικών εκφράσεων. Η αποτίμηση των λογικών εκφράσεων γίνεται από «τα αριστερά προς τα δεξιά» και μόνο όσο χρειάζεται για να διαπιστωθεί το τελικό αποτέλεσμα της έκφρασης (conditional evaluation). Για το η αποτίμηση σταματά μόλις η ενδιάμεση τιμή γίνει διάφορη του 0 Για το && η αποτίμηση σταματά μόλις η ενδιάμεση τιμή γίνει 0. Προσοχή στις παρενέργειες! 17

int a=1, b=0, c; 18 c = a&&b; c = (a==1) (b==1); c = (a++>1); c = b && (a++); c = (b++) && (a++); c = (--b) (a++); /* c γίνεται 0 */ /* c γίνεται 1 */ /* c γίνεται 0, a γίνεται 2 */ /* c γίνεται 0, a παραμένει 2 */ /* c γίνεται 0, b γίνεται 1, a παραμένει 2 */ /* c γίνεται 1, b γίνεται 0, a γίνεται 3 */

Παρενέργειες 19 Παρενέργεια: αλλαγή τιμής μιας μεταβλητής χωρίς αυτό να είναι εύκολα ορατό από τον κώδικα. Η τεχνική αποτίμησης λογικών εκφράσεων μπορεί να οδηγήσει σε κώδικα με παρενέργειες, π.χ. <lexpr> && (a++) οδηγεί σε αλλαγή της τιμής της μεταβλητής a μόνο όταν η <lexpr> αποτιμάται ως αληθής Δεν είναι εύκολο να εκτιμηθεί διαβάζοντας τον (υπόλοιπο) κώδικα. Ο προγραμματισμός με παρενέργειες θεωρείται κακό στυλ Οδηγεί σε κώδικα που είναι αρκετά δύσκολο να κατανοηθεί.

Λοιποί Τελεστές 20 <lexpr>?<expr1>:<expr2> αποτιμά την έκφραση lexpr και εφόσον η τιμή της είναι διάφορη του 0 αποτιμά και επιστρέφει το αποτέλεσμα της έκφρασης expr1, διαφορετικά αποτιμά και επιστρέφει το αποτέλεσμα της έκφρασης expr2. expr1,expr2,,exprn αποτιμά τις εκφράσεις expr1, expr2 μέχρι και exprn, «από αριστερά προς τα δεξιά», και επιστρέφει το αποτέλεσμα της τελευταίας. Π.χ.: int a = 1, b = 2, c, d; c = (a<b)? a : b; d = (c=a,a=b,b=c,c=0); /* c == 1 */ /* a,b,c,d == 2,1,0,0 */

Προτεραιότητα Τελεστών 21 μέγιστη ελάχιστη Σειρά αποτίμησης () []. ->! ~ ++ -- + - * & (cast) (ατομικοί) * / % + - << >> > >= < <= ==,!= & ^ &&? : = += -= *= /= %= &= = <<= >>=,