Pelajaran 6 - Pointer
Pointer
dapat membingungkan, kadang-kadang Dan, Andari mungkin bertanya-tanya
mengapa Apakah kamu pernah Ingin menggunakan mereka. Yang BENAR adalah, mereka dapat membuat beberapa Hal lebih mudah. Misalnya, menggunakan pointer adalah salat Satu Cara untuk memiliki fungsi memodifikasi variabel berlalu untuk ITU. Hal
inisial JUGA mungkin untuk menggunakan pointer untuk mengalokasikan
Memori Dinamis Yang memungkinkan Teknik pemrograman tertentu, seperti PT
ARWANA Microsoft terkait resizable Dan array. Pointer adalah apa ... Mereka terdengar seperti pointer. Mereka menunjuk Ke KBLI di Memori. Bayangkan sebuah botol Besar ITU memegang KBLI jar berbaring. Illustrasi tabung Before memegang secarik Kertas Artikel Baru Nomor 12 tertulis di atasnya. Tabung Artikel Baru 12 adalah bilangan Bulat, Dan tabung Artikel Baru alamat Memori 12 adalah pointer.
Sintaks
Pointer Ook dapat membingungkan, karena pointer dapat memberikan kedua
KBLI Memori Dan memberikan Diskonto sebenarnya Disimpan di KBLI ITU
sama. Ketika pointer Menyatakan, sintaks adalah inisial: variable_type * NAMA, * Perhatikan nihil. Suami
adalah Kunci untuk Mendeklarasikan pointer, Acute Andari menggunakannya
sebelum NAMA variabel, Maka Akan mendeklarasikan variabel untuk menjadi
pointer.
Seperti
Yang SAYA katakan, ADA doa Cara Untuk menggunakan pointer untuk
mengakses INFORMASI mengenai alamat Memori inisial menunjuk ke. Hal inisial mungkin untuk memilikinya memberikan alamat Yang sebenarnya Ke Lain variabel, atau untuk Lulus Ke fungsi. Untuk melakukannya, cukup gunakan NAMA pointer Tanpa * nihil. Mengacu PADA: Ke: akses KBLI Memori Yang sebenarnya, gunakan file *. Nama di Teknis untuk melakukan Hal inisial adalah dereferencing.
Illustrasi
rangka untuk memiliki pointer sebenarnya menunjuk Ke Lain variabel
adalah Diperlukan untuk memiliki alamat Memori Bahasa Dari variabel ITU
JUGA. Untuk mendapatkan alamat Memori Bahasa Dari variabel, menempatkan & masuk depan NAMA variabel. Hal inisial membuat memberikan alamatnya. Hal inisial disebut Operator alamat, karena besarbesaran mengembalikan alamat Memori.
Sebagai Contoh:
# Include
menggunakan namespace std;
int main ()
{
int x; / / A bilangan bulat yang normal
int * p, / / A pointer ke integer
p = &x; / / Baca itu, "menetapkan alamat x ke p"
cin >> x; / / Masukan nilai dalam x, kita juga bisa menggunakan * p sini
cin.ignore ();
cout << * p << "\ n"; / / Perhatikan penggunaan * untuk mendapatkan nilai
cin.get ();
}
Cout keluaran Diskonto Illustrasi x. Mengapa demikian? Nah, melihat Kode. X bilangan bulat Disebut. Sebuah
pointer Ke bulat kemudian didefinisikan sebagai p Kemudian menyimpan
KBLI Memori x PADA pointer menggunakan Operator alamat (&). Acute
Andari Ingin, Andari dapat menganggapnya sebagai Acute tabung ITU ular
Dan bilangan bulat ampersand ular di dalamnya Maka Akan menampilkan
Namanya (Illustrasi pointer, alamat Memori) Kemudian masukan pengguna
Diskonto untuk x. Kemudian cout menggunakan * untuk menempatkan Diskonto Disimpan Dalam, KBLI Memori pointer. Acute
tabung Artikel Baru NAMA jar Lain di dalamnya memiliki * di depan ITU
Akan memberikan Diskonto Disimpan Dalam, tabung Artikel Baru NAMA Yang
sama sebagai salat Satu Dalam, tabung Artikel Baru NAMA. Hal inisial tidak terlalu Sulit, * memberikan Diskonto di KBLI. The unasterisked memberikan KBLI Memori.
Perhatikan bahwa dalam contoh di atas, pointer diinisialisasi untuk menunjuk ke alamat memori tertentu sebelum digunakan. Jika hal ini tidak terjadi, itu bisa menunjuk apa pun. Hal ini dapat mengakibatkan konsekuensi yang sangat tidak menyenangkan ke komputer. Anda harus selalu menginisialisasi pointer sebelum Anda menggunakannya.
Hal ini juga memungkinkan untuk menginisialisasi pointer menggunakan memori bebas. Hal ini memungkinkan alokasi dinamis memori array. Hal ini paling berguna untuk menyiapkan struktur yang disebut daftar link. Ini topik yang sulit terlalu kompleks untuk teks ini. Pemahaman tentang kata kunci baru dan menghapus akan, bagaimanapun, akan sangat membantu di masa depan.
Kata
kunci baru digunakan untuk menginisialisasi pointer dengan memori dari
toko bebas (bagian dari memori yang tersedia untuk semua program). Sintaks seperti contoh:
int * ptr = new int;
Ini
menginisialisasi ptr untuk menunjuk ke alamat memori int ukuran (karena
variabel memiliki ukuran yang berbeda, jumlah byte, ini diperlukan). Memori yang menunjuk menjadi tidak tersedia untuk program lain. Ini berarti bahwa coder hati-hati harus membebaskan memori ini pada akhir penggunaannya.
Operator menghapus membebaskan memori yang dialokasikan melalui baru. Untuk melakukannya, sintaksnya adalah seperti pada contoh.
menghapus ptr;
Setelah menghapus pointer, itu adalah ide yang baik untuk me-reset untuk menunjuk ke 0. Ketika 0 ditugaskan untuk pointer, pointer menjadi null pointer, dengan kata lain, ini menunjuk ke apa-apa. Dengan
melakukan hal ini, ketika Anda melakukan sesuatu yang bodoh dengan
pointer (itu sering terjadi, bahkan dengan programmer berpengalaman),
Anda menemukan segera bukannya kemudian, ketika Anda telah melakukan
kerusakan besar.
Belajar C++ Bag.6
Unknown | 04.31 | 0
komentar
Related posts:
If you enjoyed this article just click here, or subscribe to receive more great content just like it.
Langganan:
Posting Komentar (Atom)

0 komentar:
Posting Komentar