Daftar Isi:
- Definisi - Apa yang dimaksud dengan operator Indirection?
- Techopedia menjelaskan operator tidak langsung
Definisi - Apa yang dimaksud dengan operator Indirection?
Operator tipuan, dalam konteks C #, adalah operator yang digunakan untuk mendapatkan nilai variabel yang menjadi titik penunjuk. Sementara penunjuk yang menunjuk ke suatu variabel menyediakan akses tidak langsung ke nilai variabel yang disimpan dalam alamat memorinya, operator tidak langsung menugaskan penunjuk dan mengembalikan nilai variabel di lokasi memori itu. Operator tipuan adalah operator unary yang diwakili oleh simbol (*).
Operator tipuan dapat digunakan dalam pointer ke pointer ke integer, array pointer satu dimensi ke integer, pointer ke char, dan pointer ke tipe yang tidak diketahui.
Operator tipuan juga dikenal sebagai operator dereference.
Techopedia menjelaskan operator tidak langsung
Simbol (*) digunakan dalam mendeklarasikan tipe pointer dan dalam melakukan tipuan pointer, sementara operator 'address-of' () mengembalikan alamat variabel. Oleh karena itu, operator tipuan dan alamat operator saling terbalik.
C # memungkinkan penggunaan pointer hanya di wilayah yang tidak aman, yang menyiratkan bahwa keamanan kode dalam wilayah itu tidak diverifikasi oleh runtime bahasa umum (CLR). Di wilayah yang tidak aman, operator tipuan diizinkan untuk membaca dan menulis ke pointer. Pernyataan C # berikut menggambarkan penggunaan operator tidak langsung:
- int a = 1, b; // baris 1
- int * pInt = & a; // baris 2
- b = * pInt; // baris 3
Operator tidak langsung harus digunakan untuk melakukan dereferensi penunjuk yang valid dengan alamat yang disejajarkan dengan tipe yang ditunjukkannya, sehingga dapat menghindari perilaku yang tidak terdefinisi saat runtime. Seharusnya tidak diterapkan pada void pointer atau ekspresi yang bukan tipe pointer, untuk menghindari kesalahan kompilator. Namun, setelah casting void pointer ke tipe pointer kanan, operator tipuan dapat digunakan.
Ketika mendeklarasikan banyak pointer dalam satu pernyataan, operator tipuan harus ditulis hanya sekali dengan tipe yang mendasarinya dan tidak diulang untuk setiap nama pointer. Operator tipuan bersifat distributif dalam C #, tidak seperti C dan C ++. Ketika operator tipuan diterapkan ke pointer nol, itu menghasilkan perilaku yang ditentukan implementasi. Karena operator ini digunakan dalam konteks yang tidak aman, kata kunci tidak aman harus digunakan sebelum bersama dengan opsi / tidak aman selama kompilasi. Definisi ini ditulis dalam konteks C #
