Sabtu, 04 Juni 2011

Variabel Memori, Array , Dan Argumentasi

Variabel Memori
Adalah sama dengan bahasa pemrograman lain. Sebuah tempat untuk menyimpan nilai. Variabel mungkin jenis yang berbeda, termasuk logis,, tanggal string numerik.

Array
Adalah pengaturan sistematis dari obyek, biasanya dalam baris dan kolom. Serta serangkaian unsur-unsur dari jenis yang sama ditempatkan di lokasi memori yang berdekatan yang dapat secara individual direferensikan dengan menambahkan indeks unik pengenal.
Itu berarti bahwa, misalnya, kita dapat menyimpan 5 nilai bertipe int dalam array tanpa harus mendeklarasikan 5 variabel yang berbeda, masing-masing dengan identifier yang berbeda. Daripada itu, menggunakan array, kita dapat menyimpan 5 nilai yang berbeda dari jenis yang sama, int misalnya, dengan identifikasi unik.
Umumnya, koleksi item data yang dapat dipilih oleh indeks dihitung pada saat run-time, termasuk:
Array struktur data
Pengaturan barang di spasi alamat yang sama di memori komputer
Array tipe data
Di gunakan dalam bahasa pemrograman untuk menentukan variabel yang dapat diindeks
Array asosiatif
Struktur model abstrak data yang generalizes indeks array untuk sewenang-wenang atau berbagai jenis di atas, seperti
Bit array atau vektor bit
Array dinamis , dialokasikan pada waktu berjalan
Paralel array catatan, dengan setiap bidang disimpan sebagai array terpisah
Jarang array , dengan unsur-unsur yang paling dihilangkan, untuk menyimpan matriks tipis
Variable-length array
Bergerigi array , dimana memiliki panjang baris yang berbeda secara individual atau terkait berbagai konsep:
Array prosesor , komputer untuk mengolah data array (jangan dikelirukan dengan array processor)
Array pemrograman , menggunakan notasi aljabar matriks dalam program (tidak sama dengan pengolahan array)
Array mengiris , ekstraksi sub-array dari array atau juga:
Global Array , perpustakaan untuk pemrosesan paralel
Intel Array Visualizer , sepotong perangkat lunak grafis ilmiah
Inisialisasi array.
Ketika mendeklarasikan array regular dari lingkup lokal (dalam satu fungsi, misalnya), jika kita tidak menentukan lain, unsur-unsur yang tidak akan diinisialisasi ke nilai default, sehingga konten mereka akan belum ditentukan sampai kita menyimpan beberapa nilai di dalamnya. Elemen-elemen array global dan statis, di sisi lain, secara otomatis diinisialisasi dengan nilai standar, yang untuk semua jenis fundamental ini berarti mereka penuh dengan nol.

Mengakses nilai array.
Dalam setiap titik di mana sebuah program array terlihat, kita dapat mengakses nilai dari setiap elemen secara sendiri seolah-olah itu adalah variabel normal, sehingga bisa baik membaca dan memodifikasi nilainya. Formatnya adalah yang sederhana seperti:
Nama [indeks
Berikut contoh sebelumnya di mana billy memiliki 5 elemen dan masing-masing unsur adalah bertipe int.

Variabel Argumentasi


Mungkin Anda ingin memiliki fungsi yang akan menerima sejumlah nilai dan kemudian kembali rata-rata. Anda tidak tahu berapa banyak argumen akan dilewatkan ke fungsi. Salah satu cara Anda bisa membuat fungsi akan menerima pointer ke array. Cara lain adalah dengan menulis fungsi yang dapat mengambil sejumlah argumen. Jadi anda bisa menulis avg (4, 12,2, 23,3, 33,3, 12.1), atau Anda bisa menulis avg (2, 2.3, 34.4); Beberapa fungsi perpustakaan dapat menerima daftar variabel argumen (seperti printf terhormat).
Untuk menggunakan fungsi dengan jumlah variabel argumen, atau lebih tepatnya, fungsi tanpa nomor set argumen, Anda akan menggunakan file header cstdarg. Ada empat bagian yang dibutuhkan: va_list, yang menyimpan daftar argumen, va_start, yang menginisialisasi daftar, va_arg, yang mengembalikan argumen berikutnya dalam daftar, dan va_end, yang membersihkan daftar argumen variabel. Setiap kali fungsi dinyatakan untuk memiliki jumlah tak tentu argumen, di tempat argumen terakhir Anda harus menempatkan suatu ellipsis (yang terlihat seperti'...'), begitu, a_function int (int x, ...); akan memberitahu compiler fungsi harus menerima namun banyak argumen bahwa programmer menggunakan, asalkan sama dengan setidaknya satu, yang menjadi yang pertama, x.

va_list adalah seperti variabel lain. Misalnya,

va_list a_list;
va_start adalah makro yang menerima dua argumen, sebuah va_list dan nama variabel yang langsung mendahului elipsis yang (...). Jadi, dalam a_function fungsi, untuk menginisialisasi a_list dengan va_start, Anda akan menulis va_start (a_list, x);

va_arg mengambil va_list dan jenis variabel, dan mengembalikan argumen berikutnya dalam daftar dalam bentuk apa pun jenis variabel itu diberitahu. Kemudian bergerak ke bawah daftar untuk argumen berikutnya. Sebagai contoh, va_arg (a_list, ganda) akan mengembalikan argumen selanjutnya, dengan asumsi itu ada, dalam bentuk ganda. Kali berikutnya itu disebut, itu akan mengembalikan argumen berikut nomor kembali terakhir, jika ada.

Untuk menunjukkan bagaimana masing-masing dari karya-karya bagian, ambil fungsi contoh:

# Include
# Include

using namespace std;

ganda rata-rata (int num, ...)
{
va_list argumen; / / tempat A untuk menyimpan daftar argumen
double sum = 0;

va_start (argumen, num); / / Inisialisasi argumen untuk menyimpan semua nilai setelah num
for (int x = 0; x jumlah + = va_arg (argumen, double); / / Menambahkan nilai berikutnya dalam daftar argumen untuk penjumlahan.
va_end (argumen); / / Membersihkan daftar

return sum / num; / / Mengembalikan beberapa angka (typecast mencegah pemotongan)
}
int main ()
{
cout < cout < }
Ini tidak selalu merupakan ide yang baik untuk menggunakan daftar argumen variabel sepanjang waktu, karena potensi ada untuk asumsi nilai adalah satu jenis, ketika sedang pada kenyataannya lain, seperti pointer null yang dianggap integer. Akibatnya, daftar argumen variabel harus digunakan hemat.