Rumah Pembangunan Apakah pengendali induk? - definisi dari techopedia

Apakah pengendali induk? - definisi dari techopedia

Isi kandungan:

Anonim

Definisi - Apa maksud pengendali Indirection?

Pengendali indirection, dalam konteks C #, adalah operator yang digunakan untuk memperoleh nilai pembolehubah yang menunjukkan titik penunjuk. Walaupun penunjuk yang menunjuk kepada pembolehubah memberikan akses tidak langsung kepada nilai pembolehubah yang disimpan dalam alamat ingatannya, pengendali indirection menggambarkan penunjuk dan mengembalikan nilai pembolehubah di lokasi ingatan itu. Pengendali indirection adalah pengendali unary yang diwakili oleh simbol (*).


Pengendali indirection boleh digunakan dalam penuding ke pointer ke integer, satu arah satu dimensi pointer ke integer, penunjuk ke char, dan penuding ke jenis yang tidak diketahui.


Pengendali indirection juga dikenali sebagai pengendali dereferen.

Techopedia menerangkan pengendali Indirection

Simbol (*) digunakan dalam mengisytiharkan jenis penunjuk dan dalam melakukan penolakan penunjuk, sementara operator 'alamat-of' mengembalikan alamat pembolehubah. Oleh itu, pengendali indirection dan operator alamat adalah penyongsang satu sama lain.


C # membenarkan penggunaan petunjuk hanya dalam rantau yang tidak selamat, yang menunjukkan bahawa keselamatan kod dalam rantau itu tidak disahkan oleh runtime bahasa biasa (CLR). Di rantau yang tidak selamat, pengendali indeksinya dibenarkan membaca dan menulis ke penunjuk. Penyataan C # berikut menggambarkan penggunaan operator indera:

  • int a = 1, b; // baris 1
  • int * pInt = & a; // baris 2
  • b = * pInt; // baris 3
Dalam baris pertama di atas, a dan b adalah pembolehubah integer dan satu diberikan nilai 1. Dalam baris 2, alamat a disimpan dalam integer pointer pInt (baris 2). Pengendali dereference digunakan dalam baris 3 untuk memberikan nilai pada alamat yang ditunjuk oleh pInt kepada pemboleh ubah integer b.


Pengendali indirection harus digunakan untuk dereference penuding yang sah dengan alamat yang sejajar dengan jenis yang ditunjukkan, agar dapat mengelakkan tingkah laku yang tidak ditentukan saat runtime. Ia tidak boleh digunakan untuk penunjuk kekosongan atau kepada ungkapan yang bukan jenis penunjuk, untuk mengelakkan ralat penyusun. Walau bagaimanapun, selepas menghantar penunjuk kekosongan ke jenis penunjuk kanan, pengendali indireksi boleh digunakan.


Apabila mengisytiharkan pelbagai petunjuk dalam satu pernyataan, pengendali indireksi harus ditulis sekali sahaja dengan jenis pendasar dan tidak diulang untuk setiap nama penunjuk. Pengendali indirection adalah distributif dalam C #, tidak seperti C dan C ++. Apabila pengendali indirection digunakan untuk penunjuk null, ia menghasilkan tingkah laku yang ditetapkan. Oleh kerana pengendali ini digunakan dalam konteks yang tidak selamat, kata kunci yang tidak selamat harus digunakan sebelum ia bersama dengan pilihan / tidak selamat semasa penyusunan. Takrif ini ditulis dalam konteks C #

Apakah pengendali induk? - definisi dari techopedia