Variabel di C ++
Variabel C ++ memberi kita kemampuan penyimpanan bernama. Ini memungkinkan programmer untuk memanipulasi data sesuai kebutuhan. Setiap variabel memiliki tipe dalam C ++. Jenis variabel membantu untuk menentukan ukuran dan tata letak peta memori variabel, kisaran nilai yang dapat disimpan dalam memori itu, dan serangkaian operasi yang dapat diterapkan padanya.
Dalam tutorial C ++ ini, Anda akan mempelajari:
- Variabel di C ++
- Jenis Variabel dasar di C ++
- Aturan Mendeklarasikan Variabel di C ++
- Jenis Data Variabel C ++
- Nama Variabel atau Pengidentifikasi
- Const Qualifier di C ++
- Cakupan Variabel di C ++
- Konversi Jenis Variabel
- Daftarkan Variabel
- Escape Sequences
Jenis Variabel dasar di C ++
Berikut adalah tipe dasar variabel C ++:
Int:
Integer adalah literal numerik (terkait dengan angka) tanpa bagian pecahan atau eksponensial. Contoh. 120, -90, dll.
Dua kali lipat:
Ini adalah nilai floating point presisi ganda. Contoh: 11.22, 2.345
Arang:
Literal karakter dibuat dengan mengapit satu karakter di dalam tanda kutip tunggal. Misalnya: 'a', 'm', 'F', 'P', '}' dll.
Mengapung:
Literal floating-point adalah literal numerik yang memiliki bentuk pecahan atau eksponen. Contoh: 1.3, 2.6
String Literals:
Literal string adalah urutan karakter yang diapit oleh tanda kutip ganda. Misalnya: "Apa kabar?"
Bool:
Ini memegang nilai Boolean benar atau salah.
Aturan Mendeklarasikan Variabel di C ++
Berikut beberapa aturan umum untuk menamai variabel:
- Nama variabel C ++ hanya boleh memiliki huruf, angka, dan garis bawah.
- Nama variabel C ++ tidak boleh dimulai dengan angka.
- Nama variabel tidak boleh dimulai dengan karakter huruf besar.
- Nama variabel yang digunakan di C ++ tidak boleh menjadi kata kunci. Misalnya, int adalah kata kunci yang digunakan untuk menunjukkan bilangan bulat.
- Nama variabel C ++ bisa dimulai dengan garis bawah. Namun, ini tidak dianggap sebagai praktik yang baik.
Jenis Data Variabel C ++
C ++ mendefinisikan seluruh rangkaian tipe primitif
The kekosongan jenis ada yang terkait nilai-nilai dengan itu dan dapat digunakan hanya dalam beberapa keadaan. Ini paling sering sebagai jenis fungsi yang dikembalikan yang tidak mengembalikan nilai.
Jenis aritmatika meliputi karakter, bilangan bulat, nilai Boolean, dan bilangan floating-point. Jenis aritmatika jika dibagi lagi menjadi 2 kategori
- Jenis floating-point . Float (atau tipe floating) mewakili bilangan desimal. Standar IEEE menentukan jumlah minimum digit signifikan. Kebanyakan kompiler biasanya memberikan presisi lebih dari minimum yang ditentukan. Biasanya, float diwakili oleh 32 bit, ganda dalam 64 bit, dan ganda panjang dalam 96 atau 128 bit.
- Jenis integral (yang mencakup jenis karakter, bilangan bulat, dan Boolean). The Boolean tipe hanya memiliki dua jenis nilai: Benar atau Salah. Ada beberapa jenis karakter , yang sebagian besar ada untuk mendukung internasionalisasi. Tipe karakter paling dasar adalah char. Char adalah ukuran yang sama dengan byte mesin tunggal yang berarti satu byte.
Jenis integral dapat ditandatangani atau tidak ditandatangani.
Jenis Tertanda : Mereka mewakili angka negatif atau positif (termasuk nol). Dalam tipe bertanda, rentang harus dibagi rata antara nilai + ve dan -ve. Jadi, karakter bertanda 8-bit akan memiliki nilai dari -127 hingga 127.
Jenis Unsigned : Dalam jenis unsigned, semua nilai> = 0. Karakter unsigned 8-bit dapat berisi 0 hingga 255 (keduanya inklusif).
Nama Variabel atau Pengidentifikasi
Pengenal dapat terdiri dari beberapa huruf, angka, dan karakter garis bawah atau beberapa kombinasi darinya. Tidak ada batasan yang diberlakukan untuk panjang nama.
Pengenal harus
- dimulai dengan huruf atau garis bawah ('_').
- Dan peka huruf besar / kecil; huruf besar dan kecil berbeda:
// mendefinisikan empat variabel int yang berbeda
int guru99, gurU99, GuRu99, GURU99;
Bahasa C ++ telah mencadangkan beberapa nama untuk penggunaannya.
Ada banyak konvensi yang diterima untuk penamaan variabel dalam bahasa pemrograman yang berbeda. Mengikuti konvensi ini dapat meningkatkan keterbacaan program.
- Pengenal harus memberikan setidaknya beberapa indikasi tentang artinya.
- Nama variabel biasanya huruf kecil-guru99, bukan Guru99 atau GURU99.
- Kelas yang kami definisikan biasanya dimulai dengan huruf besar.
- Pengenal yang berisi banyak kata harus membedakan setiap kata secara visual. Misalnya, guru99_website bukan guru99website.
Deklarasi dan Definisi Variabel C ++
Deklarasi variabel membuat nama program dikenal dalam cakupan di mana ia didefinisikan. Contoh:
int a=5;int b;char c='A';
int a,b;a=b=1000;
List initializationint a(5);int b{5};
Const Qualifier di C ++
Misalkan ada variabel buffsize yang menyatakan jumlah input yang akan diambil dari pengguna. Di sini, kami tidak ingin mengubah nilai buffsize di seluruh program. Kami ingin mendefinisikan variabel yang nilainya kami tahu tidak boleh berubah.
Dalam kasus seperti itu, gunakan kata kunci const
const int bufSize = 512; // input buffer size
Ini mendefinisikan bufSize sebagai sebuah konstanta. Setiap upaya untuk menetapkan atau mengubah bufSize memberikan kesalahan.
Di sini, kita tidak bisa mengubah nilai objek const setelah kita membuatnya, itu harus dinyatakan dan diinisialisasi wajib. Jika tidak, kompilator membuat kesalahan.
const int i = get_size(); // ok: initialized at run timeconst int j = 42; // ok: initialized at compile timeconst int k; // error: k is uninitialized constint i = 42;const int ci = i; // ok: the value in i is copied into ci
Cakupan Variabel di C ++
Cakupan adalah rentang program di mana variabel memiliki arti. Sebagian besar nama yang sama dapat digunakan untuk merujuk ke entitas yang berbeda dalam cakupan yang berbeda. Variabel terlihat dari titik di mana mereka dideklarasikan hingga akhir cakupan di mana deklarasinya muncul.
#includeint main(){int sum = 0;// sum values from 1 through 10 inclusivefor (int val = 1; val <= 10; ++val)sum += val; // equivalent to sum = sum + valcout << "Sum of 1 to 10 inclusive is "<< sum < Program ini mendefinisikan 3 nama, yaitu, main, sum, dan val. Ini menggunakan nama namespace std, bersama dengan dua nama lain dari namespace-cout dan endl.
- Nama fungsi "utama" ditentukan di luar tanda kurung kurawal. Nama fungsi main-seperti kebanyakan nama lain yang didefinisikan di luar fungsi-memiliki cakupan global. Artinya, setelah dideklarasikan, nama-nama yang berada di lingkup global dapat diakses di seluruh program.
- Jumlah variabel ditentukan dalam ruang lingkup blok yang merupakan tubuh dari fungsi utama. Ini dapat diakses dari titik deklarasinya dan di seluruh tubuh fungsi utama lainnya. Namun, tidak di luar itu. Ini berarti bahwa jumlah variabel memiliki ruang lingkup blok .
- Variabel val didefinisikan dalam lingkup "untuk pernyataan". Ini dapat dengan mudah digunakan dalam pernyataan itu tetapi tidak di tempat lain di fungsi utama. Ini memiliki ruang lingkup lokal .
Cakupan Bersarang
Cakupan dapat berisi cakupan lain. Cakupan yang terkandung (atau bersarang) disebut sebagai lingkup dalam. Ruang lingkup yang mengandung adalah ruang lingkup luar.
#includeusing namespace std;// Program for illustration purposes only: It is bad style for a function// to use a global variable and also define a local variable with the same nameint reused = 42; // reused has global scopeint main(){int unique = 0; // unique has block scope// output #1: uses global reused; prints 42 0cout << reused << " " << unique << endl;int reused = 0; // new, local object named reused hides global reused// output #2: uses local reused; prints 0 0cout << reused << " " << unique << endl;// output #3: explicitly requests the global reused; prints 42 0cout << ::reused << " " << unique << endl;return 0;} Output # 1 muncul sebelum definisi lokal digunakan kembali. Jadi, keluaran ini
Pernyataan adalah salah satu yang menggunakan nama yang digunakan kembali yang didefinisikan dalam lingkup global. Output pernyataan ini
42 0
Output # 2 terjadi setelah definisi lokal digunakan kembali. Sekarang dalam ruang lingkup. Oleh karena itu, pernyataan output kedua ini hanya menggunakan objek lokal bernama reuse, bukan global dan outputs
0 0
Output # 3 menimpa aturan pelingkupan default menggunakan operator cakupan. Cakupan global tidak memiliki nama. Jadi, ketika operator scope (: :) memiliki sisi kiri yang kosong. Ini menafsirkannya sebagai permintaan untuk mengambil nama di sisi kanan cakupan global. Dengan demikian, ekspresi tersebut menggunakan penggunaan kembali dan keluaran global
42 0
Konversi Jenis Variabel
Variabel dari satu jenis dapat diubah menjadi jenis lainnya. Ini dikenal sebagai "Jenis Konversi". Mari kita lihat aturan untuk mengonversi berbagai jenis variabel C ++:
Menetapkan non-bool ke variabel bool menghasilkan false jika nilainya 0 dan benar sebaliknya.
bool b = 42; // b is truePenetapan bool ke salah satu jenis aritmatika lainnya menghasilkan 1 jika bool benar dan 0 jika bool salah.
bool b = true;int i = b; // i has value 1Menetapkan nilai floating-point ke variabel tipe int menghasilkan nilai yang terpotong. Nilai yang disimpan adalah bagian sebelum koma desimal.
int i = 3.14; // i has value 3Menetapkan nilai int ke variabel tipe float menghasilkan bagian pecahan menjadi nol. Presisi biasanya hilang jika bilangan bulat memiliki lebih banyak bit daripada yang dapat diakomodasi oleh variabel mengambang.
Int i=3;double pi = i; // pi has value 3.0Jika kita mencoba untuk menetapkan nilai di luar jangkauan ke variabel tipe unsigned, hasilnya adalah sisa nilai% (modulo)
Misalnya, tipe karakter unsigned 8-bit dapat menyimpan nilai dari 0 hingga 255, inklusif. Menetapkan nilai di luar rentang ini akan menghasilkan kompilator menetapkan sisa nilai modulo 256. Oleh karena itu, dengan logika di atas, penetapan -1 ke karakter unsigned 8-bit memberi objek itu nilai 255.
unsigned char c = -1; // assuming 8-bit chars, c has value 255Jika kami mencoba untuk menetapkan nilai di luar jangkauan ke objek berjenis bertanda, hasilnya tidak dapat diprediksi. Itu tidak ditentukan. Program mungkin tampak bekerja di luar, atau mungkin macet, atau mungkin menghasilkan nilai sampah.
signed char c2 = 256; // assuming 8-bit chars, the value of c2 is undefinedKompilator menerapkan jenis konversi yang sama ini ketika kita menggunakan nilai dari satu jenis di mana nilai jenis lain diharapkan.
int i = 42;if (i) // condition will evaluate as truei = 0;Jika nilai ini = 0, maka kondisinya salah; semua nilai (bukan nol) lainnya menghasilkan true. Dengan konsep yang sama, ketika kita menggunakan bool dalam ekspresi aritmatika, nilainya selalu diubah menjadi 0 atau 1. Akibatnya, penggunaan bool dalam ekspresi aritmatika biasanya hampir pasti salah.
Perhatian: Jangan Campurkan Jenis yang Ditandatangani dan Tidak Bertanda Tangan
Ekspresi yang menggabungkan tanda dan tidak dapat menghasilkan hasil yang mengejutkan dan salah ketika nilai yang ditandatangani negatif. Seperti yang dibahas di atas, nilai yang ditandatangani secara otomatis diubah menjadi unsigned.
Misalnya, dalam ekspresi aritmatika seperti
x* yJika x adalah -1 dan y adalah 1, dan jika x dan y keduanya int, maka nilainya adalah, seperti yang diharapkan, -1.
Jika x adalah int dan y tidak bertanda tangan, maka nilai ekspresi ini bergantung pada berapa banyak bit yang dimiliki integer pada mesin kompilasi. Di mesin kami, ekspresi ini menghasilkan 4294967295.
Daftarkan Variabel
Variabel register lebih cepat diakses dibandingkan dengan variabel memori. Jadi, variabel yang sering digunakan dalam program C ++ dapat dimasukkan ke dalam register menggunakan kata kunci register . Kata kunci register memberi tahu kompilator untuk menyimpan variabel yang diberikan dalam sebuah register. Itu pilihan penyusun apakah akan memasukkannya ke dalam register atau tidak. Secara umum, compiler sendiri melakukan berbagai optimasi termasuk meletakkan beberapa variabel di register. Tidak ada batasan jumlah variabel register dalam program C ++. Tetapi kompilator mungkin tidak menyimpan variabel dalam register. Ini karena memori register sangat terbatas dan paling umum digunakan oleh OS.
Untuk mendefinisikan:
register int i;Komentar
Komentar adalah bagian dari kode yang diabaikan oleh kompilator. Ini memungkinkan programmer untuk membuat catatan di area yang relevan dari kode sumber / program. Komentar datang dalam bentuk blok atau baris tunggal. Komentar program adalah pernyataan penjelasan. Ini dapat dimasukkan dalam kode C ++ yang membantu siapa pun membaca kode sumbernya. Semua bahasa pemrograman memungkinkan beberapa bentuk komentar. C ++ mendukung komentar baris tunggal dan banyak baris.
- Komentar baris tunggal adalah komentar yang dimulai dengan // dan berlanjut hingga akhir baris. Jika karakter terakhir dalam baris komentar adalah \ maka komentar akan dilanjutkan di baris berikutnya.
- Komentar multibaris adalah komentar yang dimulai dengan / * dan diakhiri dengan * /.
/* This is a comment *//* C++ comments can also* span multiple lines*/Escape Sequences
Beberapa karakter, seperti backspace dan karakter kontrol, tidak memiliki gambar yang terlihat. Karakter seperti itu dikenal sebagai karakter yang tidak dapat dicetak. Karakter lain (tanda kutip tunggal dan ganda, tanda tanya, dan garis miring terbalik) memiliki arti khusus dalam banyak bahasa pemrograman.
Program kami tidak dapat menggunakan salah satu karakter ini secara langsung. Sebagai gantinya, kita dapat menggunakan urutan escape untuk merepresentasikan karakter tersebut. Urutan pelarian dimulai dengan garis miring terbalik.
Bahasa pemrograman C ++ mendefinisikan beberapa urutan escape:
Apa fungsinya?
Karakter
Garis baru
\ n
Tab vertikal
\ v
Garis miring terbalik
\\
Kereta kembali
\ r
Tab horizontal
\ t
Menghapus
\ b
Tanda tanya
\?
Formfeed
\ f
Waspada (bel)
\Sebuah
Kutipan ganda
\ "
Kutipan tunggal
\ '
Kami menggunakan urutan pelolosan seolah-olah itu adalah satu karakter:
cout << '\n'; // prints a newlinecout << "\tguru99!\n"; // prints a tab followed by "guru99!" and a newlineKita juga dapat menulis urutan escape umum \ x diikuti dengan satu atau lebih digit heksadesimal. Atau kami menggunakan \ diikuti dengan satu, atau dua, atau tiga digit oktal. Urutan pelolosan umum mewakili nilai numerik karakter. Beberapa contoh (dengan asumsi kumpulan karakter Latin-1):
\7 (bell) \12 (newline) \40 (blank)\0 (null) \115 ('M') \x4d ('M')Kita dapat menggunakan urutan escape yang telah ditentukan sebelumnya, karena kita menggunakan karakter lain.
cout << "Hi \x4dO\115!\n"; // prints Hi MOM! followed by a newlinecout << '\115' << '\n'; // prints M followed by a newlineRingkasan
- Variabel C ++ memberi kita kemampuan penyimpanan bernama.
- Jenis variabel C ++: int, double, char, float, string, bool, dll.
- Cakupan yang terkandung (atau bersarang) disebut sebagai ruang lingkup dalam, dan ruang lingkup yang memuat adalah ruang lingkup luar.
- Variabel dari satu jenis dapat diubah menjadi jenis lainnya. Ini dikenal sebagai "Jenis Konversi".
- Variabel register lebih cepat diakses dibandingkan dengan variabel memori.
- Komentar adalah bagian dari kode yang diabaikan oleh kompilator.
- Beberapa karakter, seperti backspace dan karakter kontrol, tidak memiliki gambar yang terlihat.