Εισαγωγή στη γλώσσα προγραμματισμού c++14 · • “Η ΓΛΩΣΣΑ...

27
Εισαγωγή στη γλώσσα προγραμματισμού C++14 Σταμάτης Σταματιάδης [email protected] Τμήμα Επιστήμης και Τεχνολογίας Υλικών, Πανεπιστήμιο Κρήτης

Upload: others

Post on 01-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

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

Σταμάτης Σταματιάδης[email protected]

Τμήμα Επιστήμης και Τεχνολογίας Υλικών,Πανεπιστήμιο Κρήτης

Page 2: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Σχετικά με το μάθημα

Διαλέξεις Πέμπτη 16:00-18:00 στην αίθουσα Φ-2.Ασκήσεις Πέμπτη 18:00-20:00 στην αίθουσα ΗΥ 2.

Ιστοσελίδα Ιστοσελίδα Φυσικού → Εκπαίδευση →Ηλεκτρονικά Μαθήματα

Βιβλιογραφία • Στην ιστοσελίδα διατίθεται το βιβλίο που θαδιδαχτεί.

• Παρέχεται επιπλέον βιβλίο μέσω Εύδοξου:• “Προγραμματισμός με τη C++”, B. Stroustrup,• “Η ΓΛΩΣΣΑ C++ ΣΕ ΒΑΘΟΣ”, Ν. Μ.

Χατζηγιαννάκης,• “C++: Από τη Θεωρία στην Εφαρμογή”, Γ.

Τσελίκης.

Εξετάσεις Ασκήσεις συγγραφής κώδικα (με ανοιχτά βιβλία,σημειώσεις, κλπ.).

Page 3: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εξέλιξη της C++

ΔημιουργόςBjarne Stroustrup(1979-1983) C With Classes

ΣτόχοςΓρήγορη γλώσσα για systems programmingπου να υποστηρίζει object-oriented programming.

Standards

• 1998 (C++98)• 2003 (C++03)• 2011 (C++11)

• 2014 (C++14)• 2017 (C++17)

Page 4: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Τεχνικά

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

1. • Δημιουργία κώδικα σε κειμενογράφο (emacs, gedit, vi, …) ή IDE(Code::Blocks, eclipse, …).

• Αποθήκευση αρχείου με (προτεινόμενη) κατάληξη .cpp

2. Μεταγλώττιση (στο terminal ή στο IDE):g++ -std=c++14 -Wall -Wextra -O2 arxeio.cpp

3. Εκτέλεση προγράμματος (στο terminal ή στο IDE):./a.out

ΠαρατήρησηΣτους υπολογιστές του εργαστηρίου ο compiler είναι ο g++-6.4.0 .

Page 5: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Παράδειγμα προγράμματος C++

#include <iostream>/* Square of a real number */int main(){

double a;std::cout << u8"Δώσε␣πραγματικό␣αριθμό:␣";std::cin >> a;double b;b = a * a;std::cout << u8"Το␣τετράγωνο␣είναι:␣";std::cout << b << '\n';return 0;

}

Page 6: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Παράδειγμα (C) προς αποφυγή!

This short program reads a spelt number (e.g. ‘forty-two‘)and writes a corresponding decimal number (e.g. ‘42‘).

long long n,u,m,b;main(e,r)char **r;{f\or(;n++||(e=getchar()|32)>=0;b="ynwtsflrabg"[n%=11]-e?b:b*8+n)for(r=b%64-25;e<47&&b;b/=8)for(n=19;n;n["1+DIY/.K430x9\G(kC["]-42&255^b||(m+=n>15?n:n>9?m%u*~-u:~(int)r?n+!(int)r*16:n*16,b=0))u=1ll<<6177%n--*4;printf("%llx\n",m);}

Page 7: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Σχόλια

Δύο μορφές σχολίων:• Κείμενο μεταξύ /* και */, ανεξάρτητα από το πόσες γραμμές

καταλαμβάνει.• Κείμενο μεταξύ // και τέλους γραμμής.

Page 8: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Είσοδος/Έξοδος δεδομένων

Αφού κάνουμε #include το <iostream>:• Το

std::cin >> a;

διαβάζει τιμή στη μεταβλητή a.• Το

std::cout<< a;

τυπώνει την τιμή της ποσότητας a.• Το

std::cout<< u8"Ελληνικό κείμενο";

τυπώνει το κείμενο εντός διπλών εισαγωγικών. Αν το κείμενοέχει ελληνικούς χαρακτήρες, βάζουμε u8 πριν τα αρχικάεισαγωγικά.

Page 9: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Τύποι ακέραιων ποσοτήτων (1/2)

• short int, int, long int, long long int,και οι αντίστοιχοι απρόσημοι τύποι

• unsigned short int, unsigned int, unsigned long int,unsigned long long int.

ΤιμέςΣειρά αριθμητικών ψηφίων χωρίς κενά, με πιθανό πρόσημο (+,-)και πιθανή κατάληξη:

−1, 5444, −45L, 556UL, 667ull

Page 10: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Τύποι ακέραιων ποσοτήτων (2/2)

Παρατηρήσεις• Εμπρόσημος ακέραιος τύπος για γενική χρήση: int.• Συνήθης μέγιστη τιμή int: 2147483647 (= 231 − 1).

Συνήθης ελάχιστη τιμή int: −2147483648 (= −231).• Απρόσημος ακέραιος τύπος για μετρητή ή δείκτη σε array:std::size_t από το <cstddef>.

• Συνήθης μέγιστη τιμή std::size_t: 18446744073709551615(= 264 − 1).

• Τα ψηφία μπορούν να χωρίζονται με απόστροφο (').• Οι αριθμοί μπορούν να γραφούν εναλλακτικά στο

δεκαεξαδικό (0x), στο οκταδικό (0) ή στο δυαδικό σύστημα(0b).

Page 11: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Τύποι πραγματικών ποσοτήτων

float (απλής ακρίβειας, 6 σημαντικά ψηφία),double (διπλής ακρίβειας, 15 σημαντικά ψηφία),long double (εκτεταμένης ακρίβειας, 18 σημαντικά ψηφία).

Παρατηρήσεις• Ποιον τύπο πρέπει να χρησιμοποιούμε; double• Συνήθης μέγιστη απόλυτη τιμή double: ≈ 10308.• Συνήθης ελάχιστη απόλυτη τιμή double: ≈ 10−308.

Page 12: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Τιμές πραγματικών ποσοτήτων

Σειρά αριθμητικών ψηφίων χωρίς κενά, με πιθανό πρόσημο(+,-), και

• ή τελεία (αντί για υποδιαστολή) που χωρίζει το ακέραιο απότο δεκαδικό μέρος: Π.χ. 12.345, -1.02.

• ή το χαρακτήρα e (ή E) που χωρίζει τον αριθμό από τηδύναμη του 10 με την οποία πολλαπλασιάζεται. Π.χ. 123E2(≡ 123× 102 ≡ 12300.0), -12e-1 (≡ −1.2),

• ή συνδυασμό των παραπάνω: Π.χ. -1.2E-2 (≡ −0.012),και πιθανή κατάληξη: Π.χ. 3E4f, 3E4L.

ΠαρατήρησηΠώς γράφουμε σε double το 10−6; 1E-6

Page 13: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Αριθμητικοί τελεστέςμεταξύ ακέραιων ποσοτήτων

Άθροισμα + Π.χ. 5 + 7Διαφορά - Π.χ. 5 - 7Γινόμενο * Π.χ. 2 * 3Πηλίκο / Π.χ. 7/2 → 3 (πόσες φορές «χωρά» το 2 στο 7).Υπόλοιπο % Π.χ. 7%2 → 1

Γενικά ισχύει (για ακέραια a,b με b> 0)• 0 ≤ a%b < b,• a = (a/b) * b + a%b.

Ύψωση σε δύναμηΜε συνάρτηση: std::pow(a,b) → ab από το <cmath>.

Page 14: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Αριθμητικοί τελεστέςμεταξύ πραγματικών ποσοτήτων

Άθροισμα + Π.χ. 5.0 + 7.0Διαφορά - Π.χ. 5.0f - 7.0fΓινόμενο * Π.χ. 2.0 * 3e2Λόγος / Π.χ. 7.0/2.0 → 3.5

Page 15: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Γενικές παρατηρήσειςστους αριθμητικούς τελεστές

Κανόνες• Τελεστές που δρουν μεταξύ ποσοτήτων ίδιου τύπου δίνουν

αποτέλεσμα αυτού του τύπου.• Τελεστές που δρουν μεταξύ ποσοτήτων διαφορετικού τύπου

προκαλούν μετατροπή της τιμής της ποσότητας«χαμηλότερης» ακρίβειας στον τύπο με την «υψηλότερη»ακρίβεια πριν από την πράξη.Παράδειγμα: int σε double: 2*3.0→ 2.0*3.0 → 6.0.Εξαίρεση: Ποσότητες τύπου short int γίνονται int πριντην πράξη.

Page 16: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Σύγκριση πραγματικών αριθμών

Τι θα τυπωθεί με τον παρακάτω κώδικα;std::cout << 0.1+0.2-0.3 << '\n';std::cout << 0.1-0.3+0.2 << '\n';

Απάντηση5.55112e-172.77556e-17Όχι 0, ούτε καν ο ίδιος αριθμός.

ΚανόναςΟι πράξεις μεταξύ πραγματικών αριθμών δεν είναι απόλυταακριβείς. Επομένως, δεν συγκρίνουμε ποτέ για ισότηταπραγματικές ποσότητες που τουλάχιστον η μία προέκυψε απόπράξεις.

Page 17: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Συντμήσεις αριθμητικών τελεστών

x = x + a; → x += a;x = x * a; → x *= a;x = x % a; → x %= a;

x = x - a; → x -= a;x = x / a; → x /= a;

Ειδικές περιπτώσειςx = x + 1; → x += 1; → ++x; ή x++;x = x - 1; → x -= 1; → --x; ή x--;

Παρατηρήσεις• Οι συντμήσεις μπορεί να εμφανιστούν σε σύνθετο κώδικα,

π.χ. b = a+= 5; → a=a+5; b = a;

• Οι σύνθετες εντολές b = ++a; και b = a++; διαφέρουν:b = ++a; → a = a + 1; b = a;b = a++; → b = a; a = a + 1;

Page 18: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Σχετικές προτεραιότητεςαριθμητικών τελεστών

Πολύ Υψηλή Παρενθέσεις ()

Υψηλή ++,--

Μεσαία *,/,%

Χαμηλή +,-

Πολύ Χαμηλή +=,-=,*=,/=,%=

ΠαρατήρησηΤελεστές με ίδια προτεραιότητα εκτελούνται από αριστερά προςτα δεξιά.

Page 19: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Μεταβλητή (1/3)

ΚανόναςΚάθε μεταβλητή προτού χρησιμοποιηθεί πρέπει να δηλωθεί, κατάπροτίμηση λίγο πριν χρησιμοποιηθεί. Αν γνωρίζουμε την αρχικήτης τιμή, καλό είναι να κάνουμε δήλωση με απόδοση αρχικήςτιμής.

Δήλωσητύπος όνομα_μεταβλητής;

Παραδείγματαint a;double b;

Eίναι πιο ευανάγνωστος ο κώδικας αν δηλώνουμε κάθε ποσότητασε ξεχωριστή γραμμή.

Page 20: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Μεταβλητή (2/3)

Δήλωση με απόδοση αρχικής τιμήςτύπος όνομα_μεταβλητής{αρχική τιμή};

Παραδείγματαint a{3};double b{4.5};

Παρατηρήσεις• ΟΧΙ int a{4.3};

• Επιτρέπεται το int a = 4.3; ;• Κενά άγκιστρα → default τιμή (για αριθμούς, 0).

Page 21: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Μεταβλητή (3/3)

Αυτόματη αναγνώριση τύπου από την αρχική τιμήauto όνομα_μεταβλητής = αρχική τιμή;

Παραδείγματαauto a = 3;auto b = 3.6;To a είναι int με τιμή 3, το b double με τιμή 3.6.

ΠαρατήρησηΟΧΙ auto a{4.3};(δεν κάνει αυτό που νομίζουμε.)

Page 22: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Σταθερή ποσότητα

Μια ποσότητα που επιθυμούμε να πάρει τιμή που να μην μπορείνα αλλάξει κατά τη διάρκεια εκτέλεσης του προγράμματος,δηλώνεται με τη χρήση της λέξης const.Αν είναι γνωστή η τιμή κατά τη μεταγλώττιση, μπορούμε ναχρησιμοποιήσουμε τη λέξη constexpr. Είναι απαραίτητο να τηςδώσουμε αρχική (και μόνιμη) τιμή κατά τον ορισμό της.

Παράδειγμαdouble const x = std::pow(2.3, 1.2);double constexpr pi{3.14159265358};double constexpr twopi{2.0*pi};

Page 23: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Κανόνες σχηματισμού ονόματος

• Επιτρεπτοί χαρακτήρες: a–z, A–Z, 0–9, και _.• Μήκος: οποιοδήποτε.• Δεν επιτρέπεται να αρχίζει από αριθμητικό ψηφίο.• Δεν επιτρέπεται να αποτελεί ενσωματωμένη λέξη της C++

(πίνακας 2.1 σημειώσεων).• Κεφαλαία και πεζά γράμματα είναι διαφορετικά.

Page 24: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Ρητή μετατροπή από ένα τύπο σε άλλο

Τι θα τυπωθεί στον παρακάτω κώδικα;

int a{9}, b{2};std::cout << a/b << '\n';

Χωρίς να αλλάξουμε τον τύπο των a,b, πώς θα υπολογίσουμε τολόγο τους (και όχι το πηλίκο);

Ρητή (σε αντιδιαστολή με την αυτόματη) μετατροπή τιμής απόένα τύπο σε άλλο γίνεται με το static_cast<>:

static_cast<double>(a)/static_cast<double>(b);

Η μετατροπή αφορά την τιμή που έχει η μεταβλητή στο όρισμα.Ο τύπος της δεν αλλάζει.

Σύνταξηstatic_cast<νέος_τύπος>(έκφραση);

Page 25: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Εντολή εκχώρησης τιμής

μεταβλητή = [ γενική έκφραση ] ;

Πρώτα εκτελούνται όλες οι πράξεις, κλήσεις συναρτήσεων κλπ.που εμφανίζονται στο δεξί μέλος.Κατόπιν, το αποτέλεσμα μετατρέπεται (αν χρειάζεται) στον τύποτης (υποχρεωτικά) μεταβλητής του αριστερού μέλους και η τιμήπου προκύπτει εκχωρείται σε αυτή.

Παραδείγματαint a;float b;

a = 2.5 * 3; // a ← 7b = 1.00000001; // b ← 1.0f

Page 26: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Τύπος χαρακτήρα (char)

Ο τύπος char είναι κατάλληλος για την αναπαράστασηποσοτήτων που οι δυνατές τιμές τους είναι χαρακτήρες.

ΤιμέςΑπλοί ή ειδικοί χαρακτήρες εντός απλών (') εισαγωγικών. Όχιελληνικοί χαρακτήρες.

Δήλωσηchar c;char d{'a'};

Εκχώρησηc = 'e';c = '\n';

Ισοδυναμία με ακέραιουςΚάθε χαρακτήρας είναι ακέραιος με τιμή που ορίζεται στοσύνολο χαρακτήρων της υλοποίησης (συνήθως το ASCII).

Page 27: Εισαγωγή στη γλώσσα προγραμματισμού C++14 · • “Η ΓΛΩΣΣΑ c++ ΣΕ ΒΑΘΟΣ”, Ν. Μ. Χατζηγιαννάκης, ... Η μετατροπή

Εισαγωγή Τύποι Αριθμητικοί τελεστές Εντολή εκχώρησης

Ειδικοί Χαρακτήρες της C++

Ειδικός Χαρακτήρας Περιγραφή\' Απόστροφος\" Εισαγωγικά\? Ερωτηματικό\\ Ανάποδη κάθετος\a Κουδούνι\b Διαγραφή προηγούμενου χαρακτήρα\f Αλλαγή σελίδας\n Αλλαγή γραμμής\r Μετακίνηση στην αρχή της γραμμής\t Οριζόντιο tab\v Κατακόρυφο tab

\ooo Χαρακτήρας με οκταδική αναπαράσταση ooo\xhhh Χαρακτήρας με δεκαεξαδική αναπαράσταση hhh\unnnn Ο χαρακτήρας unicode U+nnnn

\Unnnnnnnn Ο χαρακτήρας unicode U+nnnnnnnn