Daftar Isi
LancangKuning.com - Array multidimensi adalah array yang berisi satu atau lebih array. Array multidimensi bisa lebih dari dua level. Namun, susunan lebih dari tiga level sulit untuk dikelola. Jumlah indeks yang diperlukan untuk mengakses elemen array berbeda pada dimensi array,
- Diperlukan dua indeks untuk mengakses elemen array dua dimensi
- Diperlukan tiga indeks untuk mengakses elemen array tiga dimensi
Baca juga :Tempat Wisata di Riau
Array dinamis multidimensi
SystemVerilog dynamic array dapat berupa,
- array reguler
- array tidak teratur
array reguler
Array reguler adalah array multidimensi dengan array anggota dengan ukuran yang sama.
sebagai contoh,
array 2-D dengan jumlah kolom yang sama untuk semua baris
Array tidak teratur
Array tidak beraturan adalah array multidimensi dengan array anggota dengan ukuran berbeda.
sebagai contoh,
Array 2-D dengan jumlah kolom berbeda untuk baris
Dalam array di bawah ini dengan 3 baris,
baris 1, 2 dan 3 masing-masing memiliki 2, 1 dan 3 kolom.
SystemVerilog array tidak teratur
SystemVerilog array tidak teratur
Contoh array dinamis 2 dimensi
Array biasa
Sebagai contoh menunjukkan deklarasi array, pembuatan, penugasan dan menampilkan elemen array.
program dynamic_array;
// deklarasi array dinamis
bit [7: 0] d_array [] [];
awal dimulai
//alokasi memori
d_array = baru [3];
foreach (d_array [i])
d_array [i] = baru [2];
// memberikan nilai acak ke elemen
foreach (d_array [i, j]) d_array [i] [j] = $ acak;
// menampilkan elemen array
foreach (d_array [i, j])
$ display ("\ td_aaray [% 0d,% 0d] =% 0d", i, j, d_array [i] [j]);
Akhir
Baca juga : Dasar Dasar Visual Basic
Pelajaran ini opsional, untuk pembaca tingkat lanjut yang ingin mempelajari lebih lanjut tentang C ++. Tidak ada pelajaran di masa depan yang membangun pelajaran ini.
Penunjuk ke penunjuk persis seperti yang Anda harapkan: penunjuk yang menyimpan alamat penunjuk lain.
Pointer ke pointer
Pointer normal ke int dinyatakan menggunakan tanda bintang tunggal:
int * ptr; // arahkan ke int, satu asterisk
Pointer ke pointer ke int dinyatakan menggunakan dua tanda bintang
int ** ptrptr; // penunjuk ke penunjuk ke int, dua tanda bintang
Sebuah pointer ke sebuah pointer berfungsi seperti halnya pointer normal - Anda dapat melakukan referensi untuk mengambil nilai yang ditunjuk. Dan karena nilai itu sendiri adalah sebuah pointer, Anda dapat melakukan dereferensi lagi untuk mendapatkan nilai yang mendasarinya. Dereferensi ini dapat dilakukan secara berurutan:
nilai int = 5;
int * ptr = & nilai;
std :: cout << * ptr; // pointer dereference ke int untuk mendapatkan nilai int
int ** ptrptr = & ptr;
std :: cout << ** ptrptr; // dereference pertama untuk mendapatkan pointer ke int, dereference kedua untuk mendapatkan nilai int
Program di atas mencetak:
Perhatikan bahwa Anda tidak dapat menetapkan pointer ke pointer langsung ke nilai:
nilai int = 5;
int ** ptrptr = && nilai; // tidak valid
Ini karena alamat operator (operator &) membutuhkan nilai lv, tetapi nilai adalah nilai.
Namun, pointer ke pointer dapat diatur ke nol:
int ** ptrptr = nullptr; // gunakan 0 sebagai ganti sebelum C ++ 11
Baca juga : Tempat Wisata di Pekanbaru
Array pointer
Pointer ke pointer memiliki beberapa kegunaan. Penggunaan yang paling umum adalah mengalokasikan array pointer secara dinamis:
int ** array = new int * [10]; // alokasikan array 10 pointer int
Ini berfungsi seperti array standar yang dialokasikan secara dinamis, kecuali elemen array bertipe “pointer to integer” dan bukan integer.
Melewati sebuah pointer berdasarkan alamat
Sama seperti kita dapat menggunakan parameter pointer untuk mengubah nilai aktual dari argumen dasar yang diteruskan, kita dapat meneruskan pointer ke pointer ke fungsi dan menggunakan pointer itu untuk mengubah nilai pointer yang ditunjuknya (masih bingung?) .
Namun, jika kita ingin suatu fungsi dapat memodifikasi apa yang ditunjukkan oleh argumen pointer, ini biasanya lebih baik dilakukan dengan menggunakan referensi ke pointer.(Putra)
Komentar