C Μεταβλητή, Τύποι δεδομένων, Σταθερές

⚡ Έξυπνη Σύνοψη

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

  • 🔤 Μεταβλητές: Μια μεταβλητή είναι ένα ονομασμένο αναγνωριστικό του οποίου η τιμή μπορεί να αλλάξει, το οποίο δηλώνεται χρησιμοποιώντας γράμματα, ψηφία ή μια υπογράμμιση.
  • 🧮 Τύποι δεδομένων: Οι τύποι C είναι πρωτόγονοι, παράγωγοι και οριζόμενοι από τον χρήστη, συμπεριλαμβανομένων των int, char, float, double και void, ο καθένας με σταθερό μέγεθος και εύρος.
  • 🔒 Σταθερές: Οι σταθερές διατηρούν σταθερές τιμές και περιλαμβάνουν ακέραιες, χαρακτήρες, συμβολοσειρές και πραγματικές σταθερές που δεν αλλάζουν ποτέ.
  • ⚙️ Δήλωση: Η λέξη-κλειδί const και η οδηγία #define δημιουργούν και οι δύο σταθερές, η μία δεσμεύει μνήμη και η άλλη αντικαθιστά κείμενο.
  • 🤖 Βοήθεια AI: Το GitHub Copilot προτείνει σωστούς τύπους δεδομένων, επισημαίνει σφάλματα ονομασίας και επιταχύνει τις δηλώσεις C.

C Μεταβλητή, Τύποι δεδομένων, Σταθερές

Τι είναι μια Μεταβλητή;

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

Μια μεμονωμένη μεταβλητή μπορεί να χρησιμοποιηθεί σε πολλές θέσεις σε ένα πρόγραμμα. Ένα όνομα μεταβλητής πρέπει να έχει νόημα. Θα πρέπει να αντιπροσωπεύει το σκοπό της μεταβλητής.

Example: Height, age, are the meaningful variables that represent the purpose it is being used for. Height variable can be used to store a height value. Age variable can be used to store the age of a person

Μια μεταβλητή πρέπει να δηλωθεί πρώτα πριν χρησιμοποιηθεί κάπου μέσα στο πρόγραμμα. Ένα όνομα μεταβλητής σχηματίζεται χρησιμοποιώντας χαρακτήρες, ψηφία και μια υπογράμμιση.

Ακολουθούν οι κανόνες που πρέπει να ακολουθούνται κατά τη δημιουργία μιας μεταβλητής:

  • Ένα όνομα μεταβλητής πρέπει να αποτελείται μόνο από χαρακτήρες, ψηφία και μια υπογράμμιση.
  • Ένα όνομα μεταβλητής δεν πρέπει να ξεκινά με αριθμό.
  • Ένα όνομα μεταβλητής δεν πρέπει να αποτελείται από κενά.
  • Ένα όνομα μεταβλητής δεν πρέπει να αποτελείται από λέξη-κλειδί.
  • Το 'C' είναι μια γλώσσα με διάκριση πεζών-κεφαλαίων που σημαίνει ότι μια μεταβλητή με το όνομα 'age' και 'AGE' είναι διαφορετική.

Ακολουθούν τα παραδείγματα έγκυρων ονομάτων μεταβλητών σε ένα πρόγραμμα «C»:

height or HEIGHT
_height
_height1
My_name

Ακολουθούν τα παραδείγματα μη έγκυρων ονομάτων μεταβλητών σε ένα πρόγραμμα «C»:

1height
Hei$ght
My name

Για παράδειγμα, δηλώνουμε μια ακέραια μεταβλητή my_variable και της εκχωρούμε την τιμή 48:

int my_variable;
my_variable = 48;

Παρεμπιπτόντως, μπορούμε και να δηλώσουμε και να αρχικοποιήσουμε (να εκχωρήσουμε μια αρχική τιμή) μια μεταβλητή σε μια μεμονωμένη πρόταση:

int my_variable = 48;

Τύποι δεδομένων

Το 'C' παρέχει διάφορους τύπους δεδομένων για να διευκολύνει έναν προγραμματιστή να επιλέξει έναν κατάλληλο τύπο δεδομένων σύμφωνα με τις απαιτήσεις μιας εφαρμογής. Ακολουθούν οι τρεις τύποι δεδομένων:

  • Πρωτόγονοι τύποι δεδομένων
  • Προερχόμενοι τύποι δεδομένων
  • Τύποι δεδομένων που καθορίζονται από τον χρήστη

Υπάρχουν πέντε βασικοί βασικοί τύποι δεδομένων,

  • int για ακέραια δεδομένα
  • char για δεδομένα χαρακτήρων
  • float για αριθμούς κινητής υποδιαστολής
  • διπλό για αριθμούς κινητής υποδιαστολής διπλής ακρίβειας
  • void

Οι πίνακες, οι συναρτήσεις, οι δείκτες και οι δομές είναι παράγωγοι τύποι δεδομένων. Η γλώσσα 'C' παρέχει πιο εκτεταμένες εκδόσεις των προαναφερθέντων πρωτευόντων τύπων δεδομένων. Κάθε τύπος δεδομένων διαφέρει από τον άλλον σε μέγεθος και εύρος. Ο παρακάτω πίνακας εμφανίζει το μέγεθος και το εύρος κάθε τύπου δεδομένων.

Τύπος δεδομένων Μέγεθος σε byte Σειρά
Χαρ ή υπογεγραμμένο χαρ 1 -128 να 127
Χωρίς υπογραφή char 1 από 0 έως 255
int ή υπογεγραμμένο int 2 -32768 να 32767
Χωρίς υπογραφή int 2 από 0 έως 65535
Short int ή Unsigned short int 2 από 0 έως 255
Υπογεγραμμένο σύντομο int 2 -128 να 127
Long int ή Signed long int 4 -2147483648 να 2147483647
Ανυπόγραφο μακρύ ενθ 4 από 0 έως 4294967295
φλοτέρ 4 3.4E-38 έως 3.4E+38
διπλασιαστεί 8 1.7E-308 έως 1.7E+308
Μακρύ διπλό 10 3.4E-4932 έως 1.1E+4932

Σημείωση: Στη C, δεν υπάρχει τύπος δεδομένων Boolean.

Ακέραιος τύπος δεδομένων

Ο ακέραιος δεν είναι παρά ένας ακέραιος αριθμός. Το εύρος για έναν ακέραιο τύπο δεδομένων διαφέρει από μηχανή σε μηχανή. Το τυπικό εύρος για έναν ακέραιο τύπο δεδομένων είναι -32768 έως 32767.

Ένας ακέραιος είναι συνήθως 2 byte που σημαίνει ότι καταναλώνει συνολικά 16 bit στη μνήμη. Μια μεμονωμένη ακέραια τιμή παίρνει 2 byte μνήμης. Ένας ακέραιος τύπος δεδομένων διαιρείται περαιτέρω σε άλλους τύπους δεδομένων όπως short int, int και long int.

Κάθε τύπος δεδομένων διαφέρει ως προς το εύρος, παρόλο που ανήκει στην οικογένεια ακέραιων τύπων δεδομένων. Το μέγεθος ενδέχεται να μην αλλάξει για κάθε τύπο δεδομένων οικογένειας ακέραιων αριθμών.

Το short int χρησιμοποιείται κυρίως για την αποθήκευση μικρών αριθμών, το int χρησιμοποιείται για την αποθήκευση ακέραιων τιμών μέσου μεγέθους και το long int χρησιμοποιείται για την αποθήκευση μεγάλων ακέραιων τιμών.

Κάθε φορά που θέλουμε να χρησιμοποιήσουμε έναν ακέραιο τύπο δεδομένων, πρέπει να τοποθετήσουμε int πριν από το αναγνωριστικό, όπως,

int age;

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

Τύπος δεδομένων κινητής υποδιαστολής

Όπως οι ακέραιοι αριθμοί, στο πρόγραμμα «C» μπορούμε επίσης να χρησιμοποιήσουμε τύπους δεδομένων κινητής υποδιαστολής. Η λέξη-κλειδί «float» χρησιμοποιείται για να αναπαραστήσει τον τύπο δεδομένων κινητής υποδιαστολής. Μπορεί να έχει μια τιμή κινητής υποδιαστολής που σημαίνει ότι ένας αριθμός έχει ένα κλάσμα και ένα δεκαδικό μέρος. Μια τιμή κινητής υποδιαστολής είναι ένας πραγματικός αριθμός που περιέχει μια υποδιαστολή. Ο τύπος δεδομένων ακέραιος δεν αποθηκεύει το δεκαδικό μέρος, επομένως μπορούμε να χρησιμοποιήσουμε float για να αποθηκεύσουμε δεκαδικό μέρος μιας τιμής.

Γενικά, ένας πλωτήρας μπορεί να κρατήσει έως και 6 τιμές ακριβείας. Εάν το float δεν είναι αρκετό, τότε μπορούμε να χρησιμοποιήσουμε άλλους τύπους δεδομένων που μπορούν να κρατήσουν μεγάλες τιμές κινητής υποδιαστολής. Ο τύπος δεδομένων double και long double χρησιμοποιούνται για την αποθήκευση πραγματικών αριθμών με ακρίβεια έως 14 και 80 bit αντίστοιχα.

Κατά τη χρήση ενός αριθμού κινητής υποδιαστολής, μια λέξη-κλειδί float/double/long double πρέπει να τοποθετηθεί πριν από ένα αναγνωριστικό. Τα έγκυρα παραδείγματα είναι,

float division;
double BankBalance;

Τύπος δεδομένων χαρακτήρων

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

Ένας τύπος δεδομένων χαρακτήρα καταλαμβάνει έως και 1 byte χώρου μνήμης.

Παράδειγμα,

Char letter;

Άκυρος τύπος δεδομένων

Ένας άκυρος τύπος δεδομένων δεν περιέχει ούτε επιστρέφει καμία τιμή. Χρησιμοποιείται κυρίως για τον ορισμό συναρτήσεων στο 'C'.

Παράδειγμα,

void displayData()

Δήλωση τύπου μιας μεταβλητής

int main() {
int x, y;
float salary = 13.48;
char letter = 'K';
x = 25;
y = 34;
int z = x+y;
printf("%d \n", z);
printf("%f \n", salary);
printf("%c \n", letter);
return 0;}

Παραγωγή:

59
13.480000
K

Μπορούμε να δηλώσουμε πολλαπλές μεταβλητές με τον ίδιο τύπο δεδομένων σε μία μόνο γραμμή, διαχωρίζοντάς τες με κόμμα. Επίσης, παρατηρήστε τη χρήση προσδιοριστών μορφής στη συνάρτηση εξόδου printf, float (%f) και char (%c) και int (%d).

Σταθερά

Σταθερές είναι οι σταθερές τιμές που δεν αλλάζουν ποτέ κατά την εκτέλεση ενός προγράμματος. Ακολουθούν οι διάφοροι τύποι σταθερών:

Ακέραιες σταθερές

Μια ακέραια σταθερά δεν είναι παρά μια τιμή που αποτελείται από ψηφία ή αριθμούς. Αυτές οι τιμές δεν αλλάζουν ποτέ κατά την εκτέλεση ενός προγράμματος. Οι ακέραιες σταθερές μπορεί να είναι οκταδικές, δεκαδικές και δεκαεξαδικές.

Η δεκαδική σταθερά περιέχει ψηφία από 0-9 όπως,

Example, 111, 1234

Παραπάνω είναι οι έγκυρες δεκαδικές σταθερές.

Η οκταδική σταθερά περιέχει ψηφία από το 0-7 και αυτών των τύπων σταθερών προηγούνται πάντα από το 0.

Example, 012, 065

Παραπάνω είναι οι έγκυρες οκταδικές σταθερές.

Η δεκαεξαδική σταθερά περιέχει ένα ψηφίο από 0-9 καθώς και χαρακτήρες από AF. Οι δεκαεξαδικές σταθερές προηγούνται πάντα από 0Χ.

Example, 0X2, 0Xbcd

Παραπάνω είναι οι έγκυρες δεκαεξαδικές σταθερές.

Οι οκταδικές και δεκαεξαδικές ακέραιες σταθερές χρησιμοποιούνται πολύ σπάνια στον προγραμματισμό με 'C'.

Σταθερές χαρακτήρων

Μια σταθερά χαρακτήρα περιέχει μόνο έναν χαρακτήρα που περικλείεται σε ένα μόνο εισαγωγικό ('). Μπορούμε επίσης να αναπαραστήσουμε τη σταθερά χαρακτήρα παρέχοντας την τιμή ASCII.

Example, 'A', '9'

Παραπάνω είναι τα παραδείγματα έγκυρων σταθερών χαρακτήρων.

Σταθερές χορδών

Μια σταθερά συμβολοσειράς περιέχει μια ακολουθία χαρακτήρων που περικλείονται μέσα σε διπλά εισαγωγικά (“”).

Example, "Hello", "Programming"

Αυτά είναι τα παραδείγματα έγκυρων σταθερών συμβολοσειρών.

Πραγματικές σταθερές

Όπως ακέραιες σταθερές που περιέχουν πάντα μια ακέραια τιμή. Το 'C' παρέχει επίσης πραγματικές σταθερές που περιέχουν μια υποδιαστολή ή μια τιμή κλάσματος. Οι πραγματικές σταθερές ονομάζονται και σταθερές κινητής υποδιαστολής. Η πραγματική σταθερά περιέχει μια υποδιαστολή και μια κλασματική τιμή.

Example, 202.15, 300.00

Αυτές είναι οι έγκυρες πραγματικές σταθερές στο 'C'.

Μια πραγματική σταθερά μπορεί επίσης να γραφτεί ως,

Mantissa e Exponent

Για παράδειγμα, για να δηλώσετε μια τιμή που δεν αλλάζει όπως η κλασική σταθερά κύκλου PI, υπάρχουν δύο τρόποι να δηλώσετε αυτήν τη σταθερά

Χρησιμοποιώντας τη λέξη-κλειδί const σε μια δήλωση μεταβλητής που θα δεσμεύσει μια μνήμη αποθήκευσης

#include <stdio.h>
int main() {
const double PI = 3.14;
printf("%f", PI);
//PI++; // This will generate an error as constants cannot be changed
return 0;}

Χρησιμοποιώντας την οδηγία #define pre-processor, η οποία δεν χρησιμοποιεί μνήμη για αποθήκευση και χωρίς να τοποθετεί ερωτηματικό στο τέλος αυτής της πρότασης.

#include <stdio.h>
#define PI 3.14
int main() {
printf("%f", PI);
return 0;}

Συχνές Ερωτήσεις

Μια μεταβλητή είναι μια ονομασμένη θέση μνήμης της οποίας η τιμή μπορεί να αλλάξει κατά την εκτέλεση. Μια σταθερά περιέχει μια σταθερή τιμή που δεν αλλάζει ποτέ αφού οριστεί.

Η λέξη-κλειδί const δημιουργεί μια πληκτρολογημένη σταθερά που υποστηρίζεται από τη μνήμη και την οποία ελέγχει ο μεταγλωττιστής. Το #define είναι μια μακροεντολή προεπεξεργαστή που αντικαθιστά κείμενο και δεν χρησιμοποιεί χώρο αποθήκευσης.

Μια τοπική μεταβλητή βρίσκεται μέσα σε μια συνάρτηση και υπάρχει μόνο κατά την εκτέλεσή της. Μια καθολική μεταβλητή παραμένει προσβάσιμη σε όλο το πρόγραμμα μέσω της C. τάξεις αποθήκευσης.

Ένας προσημασμένος τύπος αποθηκεύει αρνητικές και θετικές τιμές. Ένας μη προσημασμένος τύπος αποθηκεύει μόνο μη αρνητικές τιμές, διπλασιάζοντας το θετικό εύρος για τον ίδιο αριθμό byte.

Η κλασική C δεν είχε λογικό τύπο. Οι προγραμματιστές χρησιμοποιούσαν int με 0 και 1. Από την C99, προσθέτει bool, true και false μέσω του τύπου _Bool.

Οι προσδιοριστές μορφοποίησης υποδεικνύουν στις printf και scanf πώς να ερμηνεύουν δεδομένα. Η %d χειρίζεται ακέραιους αριθμούς, η %f χειρίζεται αριθμούς κινητής υποδιαστολής και η %c χειρίζεται έναν μόνο χαρακτήρα.

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

GitHub Copilot Συμπληρώνει αυτόματα τις δηλώσεις μεταβλητών και σταθερών από σχόλια ή κοντινό κώδικα. Προτείνει ονόματα και τύπους δεδομένων και προσχέδια γραμμών const ή #define για έλεγχο.

Συνοψίστε αυτήν την ανάρτηση με: