Τελεστής προσανατολισμού

Συγγραφέας: Lewis Jackson
Ημερομηνία Δημιουργίας: 8 Ενδέχεται 2021
Ημερομηνία Ενημέρωσης: 1 Ιούλιος 2024
Anonim
4. Γλώσσα Προγραμματισμού R | Συναρτήσεις και τελεστές
Βίντεο: 4. Γλώσσα Προγραμματισμού R | Συναρτήσεις και τελεστές

Περιεχόμενο

Ορισμός - Τι σημαίνει ο χειριστής Indirection;

Ένας χειριστής διεύθυνσης, στο con του C #, είναι ένας χειριστής που χρησιμοποιείται για να πάρει την τιμή μιας μεταβλητής στην οποία δείχνει ένας δείκτης. Ενώ ένας δείκτης που δείχνει μια μεταβλητή παρέχει έμμεση πρόσβαση στην τιμή της μεταβλητής που είναι αποθηκευμένη στη διεύθυνση της μνήμης της, ο χειριστής διεύθυνσης dereferences ο δείκτης και επιστρέφει την τιμή της μεταβλητής σε εκείνη τη θέση μνήμης. Ο χειριστής διεύθυνσης είναι ένας μοναδικός χειριστής που αντιπροσωπεύεται από το σύμβολο (*).

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

Ο χειριστής διεύθυνσης είναι επίσης γνωστός ως operator dereference.

Εισαγωγή στη Microsoft Azure και το Microsoft Σε αυτό τον οδηγό θα μάθετε τι είναι το cloud computing και πώς η Microsoft Azure μπορεί να σας βοηθήσει να μεταφέρετε και να εκτελέσετε την επιχείρησή σας από το cloud.

Η Techopedia εξηγεί τον χειριστή Indirection

Το σύμβολο (*) χρησιμοποιείται για τον προσδιορισμό τύπων δείκτη και για την εκτέλεση διεύθυνσης δείκτη, ενώ ο χειριστής 'address-of' () επιστρέφει τη διεύθυνση μιας μεταβλητής. Επομένως, ο χειριστής διεύθυνσης και η διεύθυνση του χειριστή είναι αντίστροφα μεταξύ τους.

Το C # επιτρέπει τη χρήση των δεικτών μόνο σε μια περιοχή που δεν είναι ασφαλής, πράγμα που σημαίνει ότι η ασφάλεια του κώδικα εντός αυτής της περιοχής δεν επαληθεύεται από τον κοινό χρόνο εκτέλεσης γλώσσας (CLR). Στην μη ασφαλή περιοχή, ο χειριστής διεύθυνσης επιτρέπεται να διαβάζει και να γράφει σε έναν δείκτη. Οι ακόλουθες δηλώσεις C # απεικονίζουν τη χρήση του χειριστή διεύθυνσης:
  • int a = 1, b; // γραμμή 1
  • int * pInt = & a; // γραμμή 2
  • b = * pInt. // γραμμή 3
Στην πρώτη γραμμή παραπάνω, τα a και b είναι ακέραιες μεταβλητές και το a αποδίδεται στην τιμή 1. Στη γραμμή 2, η διεύθυνση του a είναι αποθηκευμένη στον ακέραιο pointer pInt (γραμμή 2). Ο χειριστής dereference χρησιμοποιείται στη γραμμή 3 για να εκχωρήσει την τιμή στη διεύθυνση που υποδεικνύει η pInt στην ακέραια μεταβλητή b.

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

Όταν δηλώνετε πολλαπλούς δείκτες σε μία μόνο δήλωση, ο χειριστής διεύθυνσης θα πρέπει να γράφεται μόνο μία φορά με τον υποκείμενο τύπο και να μην επαναλαμβάνεται για κάθε όνομα δείκτη. Ο χειριστής διεύθυνσης είναι διανεμητικός σε C #, σε αντίθεση με C και C ++. Όταν ο χειριστής διεύθυνσης εφαρμόζεται σε έναν μηδενικό δείκτη, οδηγεί σε μια συμπεριφορά που καθορίζεται από την εφαρμογή. Επειδή αυτός ο χειριστής χρησιμοποιείται σε ένα μη ασφαλές con, η λέξη ανασφαλής πρέπει να χρησιμοποιηθεί πριν από αυτήν μαζί με την / ανασφαλής επιλογή κατά τη διάρκεια της σύνταξης. Ο ορισμός αυτός γράφτηκε στο con του C #