Σε αυτό το σεμινάριο, θα μάθουμε για τους τροποποιητές τύπου και τον τρόπο χρήσης τους στον προγραμματισμό C ++ με τη βοήθεια παραδειγμάτων.
Στον προγραμματισμό C ++, οι τροποποιητές τύπου χρησιμοποιούνται για να αλλάξουν την έννοια των βασικών τύπων δεδομένων.
Υπάρχουν τέσσερις τροποποιητές τύπου στο C ++.
short
long
signed
unsigned
Ακολουθεί μια σύντομη περίληψη:
Τύπος δεδομένων | Μέγεθος (σε Bytes) | Εννοια |
---|---|---|
signed int | 4 | χρησιμοποιείται για ακέραιους αριθμούς (ισοδύναμο με int ) |
unsigned int | 4 | μπορεί να αποθηκεύσει μόνο μη αρνητικούς ακέραιους αριθμούς |
short | 2 | χρησιμοποιείται για μικρούς ακέραιους αριθμούς (εύρος -32768 έως 32767 ) |
long | τουλάχιστον 4 | χρησιμοποιείται για μεγάλους ακέραιους (ισοδύναμο με long int ) |
unsigned long | 4 | χρησιμοποιείται για μεγάλους θετικούς ακέραιους ή 0 (ισοδύναμο με unsigned long int ) |
long long | 8 | χρησιμοποιείται για πολύ μεγάλους ακέραιους (ισοδύναμο με long long int ). |
unsigned long long | 8 | χρησιμοποιείται για πολύ μεγάλους θετικούς ακέραιους ή 0 (ισοδύναμο με unsigned long long int ) |
long double | 8 | χρησιμοποιείται για μεγάλους αριθμούς κινητής υποδιαστολής |
signed char | 1 | χρησιμοποιείται για χαρακτήρες (εγγυημένη περιοχή -127 έως 127 ) |
unsigned char | 1 | χρησιμοποιείται για χαρακτήρες (εύρος 0 έως 255 ) |
τροποποιητής μικρού τύπου
Μπορούμε να χρησιμοποιήσουμε short
για μικρούς ακέραιους αριθμούς (στην περιοχή −32,767
έως +32,767
).
Για παράδειγμα,
// small integer short a = 12345;
Εδώ, το a είναι μια short
ακέραια μεταβλητή.
Σημείωση: short
ισοδυναμεί με short int
.
μακρύς τροποποιητής τύπου
Εάν χρειαστεί να αποθηκεύσουμε έναν μεγάλο ακέραιο (στην περιοχή -2147483647 έως 2147483647), μπορούμε να χρησιμοποιήσουμε τον προσδιοριστή τύπου long
. Για παράδειγμα,
// large integer long b = 123456;
Σημείωση: long
ισοδυναμεί με long int
.
Ο τροποποιητής μεγάλου τύπου μπορεί επίσης να χρησιμοποιηθεί με double
μεταβλητές.
// large floating-point number long double c = 0.333333333333333333L;
Σημείωση: Για να υποδείξουμε long double
, χρησιμοποιούμε το L
επίθημα. Εάν δεν χρησιμοποιήσουμε το επίθημα L
, είναι μια double
τιμή που μετατρέπεται σε long double
(η οποία μπορεί να οδηγήσει σε απώλεια δεδομένων).
πολύ καιρό
long
μπορεί να επαναληφθεί δύο φορές για να δημιουργήσει τον long long
τύπο. Αυτός ο τύπος χρησιμοποιείται για ακόμη μεγαλύτερους αριθμούς από long
. long long
ο τροποποιητής τύπου μπορεί να χρησιμοποιηθεί μόνο με int
.
Για παράδειγμα,
// long long int long long num = 12345678;
υπογεγραμμένοι και μη υπογεγραμμένοι τροποποιητές
Οι υπογεγραμμένες μεταβλητές μπορούν να διατηρούν τόσο θετικούς όσο και αρνητικούς ακέραιους αριθμούς, συμπεριλαμβανομένου του μηδέν . Για παράδειγμα,
// positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;
Εδώ,
- Το x κρατά έναν ακέραιο θετικής αξίας
- y κρατά έναν ακέραιο αρνητικό
- Το z κρατά έναν ακέραιο μηδενικής αξίας
Σημείωση:
- Από προεπιλογή, οι ακέραιοι είναι
signed
. Ως εκ τούτου αντί γιαsigned
int
, μπορούμε να χρησιμοποιήσουμε άμεσαint
. signed
και χωρίς υπογραφή μπορεί να χρησιμοποιηθεί μόνο με τύπους int και char.
Οι μη υπογεγραμμένες μεταβλητές μπορούν να διατηρούν μόνο μη αρνητικές ακέραιες τιμές. Για παράδειγμα,
// positive valued integer unsigned int x = 2; unsigned int y = 0;
Εδώ,
- Το x κρατά έναν ακέραιο θετικής αξίας
- y κρατάει μηδέν
Γενικά, μια int
μεταβλητή μπορεί να αποθηκεύσει ένα εύρος τιμών από -2.147.483.648 έως 2.147.483.647 . Ενώ, μια unsigned in
μεταβλητή t μπορεί να αποθηκεύσει ένα εύρος τιμών από 0 έως 4.294.967.295 .
υπογεγραμμένο, χωρίς υπογραφή και απλό char
C ++ διαθέτει 3 διαφορετικούς τύπους char: char
, signed char
και unsigned char
. Στην πράξη, υπάρχουν βασικά μόνο 2 τύποι: signed char
και unsigned char
.
Αυτό συμβαίνει επειδή παρόλο που char
δεν είναι το ίδιο signed char
ή unsigned char
στο πρότυπο C ++, διαφορετικοί μεταγλωττιστές αντιμετωπίζουν char
είτε είτε signed char
είτε unsigned char
ανάλογα με τις προτιμήσεις τους.
Σημείωση: Όταν χρησιμοποιούμε μόνο char
αντί για signed char
ή unsigned char
, αυτός ο τύπος είναι γνωστός ως απλός χαρακτήρας .
Όπως ίσως μαντέψατε, signed char
μπορείτε να αποθηκεύσετε τόσο θετικούς όσο και αρνητικούς ακέραιους, ενώ unsigned char
μπορείτε να αποθηκεύσετε μόνο θετικούς ακέραιους (συμπεριλαμβανομένου του 0 )
Η εγγυημένη εύρος των ακέραιες τιμές signed char
μπορεί να αποθηκεύσει είναι -127 - 127 , ενώ το εύρος της unsigned char
είναι 0 έως 255 .
// plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;
Εδώ,
- Το plain_1 κρατά έναν ακέραιο θετικής αξίας
- Το plain_2 κρατά έναν ακέραιο μηδενικής αξίας
- Το sin_1 κρατά έναν ακέραιο θετικής αξίας
- Το sin_2 κρατά έναν ακέραιο μηδενικής αξίας
- Το sin_3 κρατά έναν ακέραιο αρνητικό
- Το unsin_1 κρατά έναν ακέραιο αρνητικό
- Το unsin_2 κρατά έναν ακέραιο μηδενικής αξίας
Σημείωση: Είναι προτιμότερο να μην χρησιμοποιείτε απλό char για την εκτέλεση αριθμητικών χειρισμών. αντί για υπογεγραμμένο ή μη υπογεγραμμένο char πρέπει να χρησιμοποιηθεί για αυτό. Ο απλός χαρακτήρας πρέπει να χρησιμοποιείται μόνο για την αποθήκευση τιμών χαρακτήρων.