Διαφορά μεταξύ τοπικής και καθολικής μεταβλητής

Πίνακας περιεχομένων:

Anonim

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

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

Προσδιορίζει επίσης το εύρος τιμών που πρέπει να αποθηκευτούν μέσα σε αυτήν τη μνήμη και τη φύση των λειτουργιών που μπορούν να εφαρμοστούν σε αυτήν τη μεταβλητή.

Σε αυτό το σεμινάριο, θα μάθετε

  • Πεδίο των μεταβλητών
  • Ορισμός τοπικής μεταβλητής
  • Ορισμός της παγκόσμιας μεταβλητής
  • Τοπικές μεταβλητές έναντι καθολικών μεταβλητών
  • Πλεονεκτήματα της χρήσης καθολικών μεταβλητών
  • Πλεονεκτήματα της χρήσης Τοπικών μεταβλητών
  • Μειονεκτήματα από τη χρήση καθολικών μεταβλητών
  • Μειονεκτήματα από τη χρήση τοπικών μεταβλητών
  • Τι είναι πιο χρήσιμο;

Πεδίο των μεταβλητών

Το εύρος της μεταβλητής είναι απλώς διάρκεια ζωής μιας μεταβλητής. Είναι μπλοκ κώδικα βάσει του οποίου μια μεταβλητή είναι εφαρμόσιμη ή ζωντανή. Για παράδειγμα:

function foo(){var x;}

Δηλώνετε μια μεταβλητή "x" μέσα σε μια συνάρτηση "foo." Το εύρος αυτής της μεταβλητής παραμένει εντός αυτής της συνάρτησης και δεν μπορεί να χρησιμοποιηθεί εκτός αυτής της συνάρτησης.

Υπάρχουν τρία μέρη όπου οι μεταβλητές μπορείτε να δηλώσετε μεταβλητή γλώσσα προγραμματισμού:

  • Μέσα σε μια συνάρτηση ή ένα μπλοκ: Τοπικές μεταβλητές
  • Εκτός όλων των συναρτήσεων: Καθολικές μεταβλητές
  • Στον ορισμό των παραμέτρων συνάρτησης: Τυπικές παράμετροι

ΒΑΣΙΚΗ ΔΙΑΦΟΡΑ

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

Τοπική μεταβλητή

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

Παράδειγμα τοπικής μεταβλητής

public int add(){int a =4;int b=5;return a+b;}

Εδώ, «a» και «b» είναι τοπικές μεταβλητές

Καθολική μεταβλητή

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

Παράδειγμα:

int a =4;int b=5;public int add(){return a+b;}

Εδώ, «a» και «b» είναι καθολικές μεταβλητές.

Τοπικές μεταβλητές Vs. Καθολικές μεταβλητές

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

Παράμετρος Τοπικός Παγκόσμια
Πεδίο εφαρμογής Δηλώνεται μέσα σε μια συνάρτηση. Δηλώνεται εκτός της συνάρτησης.
αξία Εάν δεν αρχικοποιηθεί, αποθηκεύεται μια τιμή απορριμμάτων Εάν δεν αρχικοποιηθεί, το μηδέν αποθηκεύεται ως προεπιλογή.
Διάρκεια Ζωής Δημιουργείται όταν η συνάρτηση ξεκινά την εκτέλεση και χάνεται όταν οι συναρτήσεις τερματίζονται. Δημιουργείται πριν από την έναρξη και την απώλεια της καθολικής εκτέλεσης του προγράμματος κατά τη λήξη του προγράμματος.
Κοινή χρήση δεδομένων Η κοινή χρήση δεδομένων δεν είναι δυνατή, καθώς τα δεδομένα της τοπικής μεταβλητής είναι προσβάσιμα με μία μόνο λειτουργία. Η κοινή χρήση δεδομένων είναι δυνατή καθώς πολλαπλές λειτουργίες έχουν πρόσβαση στην ίδια καθολική μεταβλητή.
Παράμετροι Απαιτείται μετάβαση παραμέτρων για τοπικές μεταβλητές για πρόσβαση στην τιμή σε άλλη συνάρτηση Η παράμετρος που περνά δεν είναι απαραίτητη για μια καθολική μεταβλητή, καθώς είναι ορατή σε όλο το πρόγραμμα
Τροποποίηση μεταβλητής τιμής Όταν η τιμή της τοπικής μεταβλητής τροποποιείται σε μία συνάρτηση, οι αλλαγές δεν είναι ορατές σε άλλη συνάρτηση. Όταν τροποποιηθεί η τιμή της καθολικής μεταβλητής σε μία συνάρτηση, οι αλλαγές είναι ορατές στο υπόλοιπο πρόγραμμα.
Πρόσβαση από Μπορείτε να έχετε πρόσβαση σε τοπικές μεταβλητές με τη βοήθεια δηλώσεων, μέσα σε μια συνάρτηση στην οποία δηλώνονται. Μπορείτε να αποκτήσετε πρόσβαση σε καθολικές μεταβλητές με οποιαδήποτε δήλωση στο πρόγραμμα.
Αποθήκευση μνήμης Αποθηκεύεται στη στοίβα, εκτός αν ορίζεται. Αποθηκεύεται σε σταθερή θέση που αποφασίζεται από τον μεταγλωττιστή.

Πλεονεκτήματα της χρήσης καθολικών μεταβλητών

  • Μπορείτε να αποκτήσετε πρόσβαση στην καθολική μεταβλητή από όλες τις λειτουργίες ή τις ενότητες ενός προγράμματος
  • Απαιτείται μόνο να δηλώσετε την καθολική μεταβλητή μία φορά εκτός των ενοτήτων.
  • Χρησιμοποιείται ιδανικά για την αποθήκευση "σταθερών" καθώς σας βοηθά να διατηρήσετε τη συνέπεια.
  • Μια καθολική μεταβλητή είναι χρήσιμη όταν πολλαπλές συναρτήσεις έχουν πρόσβαση στα ίδια δεδομένα.

Πλεονεκτήματα της χρήσης Τοπικών μεταβλητών

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

Μειονεκτήματα από τη χρήση καθολικών μεταβλητών

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

Μειονεκτήματα από τη χρήση τοπικών μεταβλητών

  • Η διαδικασία εντοπισμού σφαλμάτων μιας τοπικής μεταβλητής είναι αρκετά δύσκολη.
  • Τα κοινά δεδομένα που απαιτούνται για τη διαβίβαση επανειλημμένα καθώς η κοινή χρήση δεδομένων δεν είναι δυνατή μεταξύ των ενοτήτων.
  • Έχουν πολύ περιορισμένο πεδίο εφαρμογής.

Τι είναι πιο χρήσιμο;

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