C++ Variabel dan Tipe: Int, Char, Float, Double, Senar & Bool
Variabel dalam C++
A C++ variabel memberi kita kemampuan penyimpanan bernama. Hal ini memungkinkan programmer untuk memanipulasi data sesuai kebutuhan. Setiap variabel memiliki tipe C++Tipe variabel membantu menentukan ukuran dan tata letak peta memori variabel, rentang nilai yang dapat disimpan dalam memori tersebut, dan serangkaian operasi yang dapat diterapkan padanya.
Tipe dasar Variabel di C++
Berikut adalah tipe dasar C++ variabel:
Int:
Bilangan bulat adalah literal numerik (yang diasosiasikan dengan angka) tanpa bagian pecahan atau eksponensial. Contoh. 120, -90, dst.
Double:
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 titik-mengambang adalah literal numerik yang memiliki bentuk pecahan atau eksponen. Misalnya: 1.3, 2.6
String Literal:
Literal string adalah serangkaian karakter yang diapit tanda kutip ganda. Misalnya: “Apa kabar?”
Bodoh:
Ini memegang nilai Boolean benar atau salah.
Aturan Mendeklarasikan Variabel di C++
Berikut adalah beberapa aturan umum untuk memberi nama variabel:
- A C++ nama variabel hanya dapat memiliki huruf, angka, dan garis bawah.
- A C++ nama variabel tidak boleh diawali dengan angka.
- Nama variabel tidak boleh dimulai dengan karakter huruf besar.
- Nama variabel yang digunakan di C++ tidak bisa menjadi kata kunci. Misalnya, int adalah kata kunci yang digunakan untuk menunjukkan bilangan bulat.
- A C++ nama variabel bisa diawali dengan garis bawah. Namun, hal ini tidak dianggap sebagai praktik yang baik.
C++ Tipe Data Variabel
C++ mendefinisikan seluruh rangkaian tipe primitif
The membatalkan type tidak memiliki nilai yang terkait dengannya dan hanya dapat digunakan dalam beberapa keadaan. Hal ini paling umum sebagai tipe pengembalian fungsi yang tidak mengembalikan nilai.
The jenis aritmatika termasuk karakter, bilangan bulat, nilai Boolean, dan angka floating-point. Tipe aritmatika jika dibagi lagi menjadi 2 kategori
- Tipe titik mengambang. Float (atau tipe floating) mewakili angka desimal. Standar IEEE menetapkan jumlah minimum digit signifikan. Sebagian besar kompiler biasanya memberikan presisi lebih dari minimum yang ditetapkan. Biasanya, float direpresentasikan dalam 32 bit, double dalam 64 bit, dan long double dalam 96 atau 128 bit.
- Tipe integral (yang mencakup tipe karakter, bilangan bulat, dan Boolean). Itu Boolean tipe hanya memiliki dua tipe nilai: Benar atau Salah. Ada beberapa tangki jenis, yang sebagian besar ada untuk mendukung internasionalisasi. Tipe karakter paling dasar adalah char. Char berukuran sama dengan satu byte mesin yang berarti satu byte.
The Tipe integral dapat ditandatangani atau tidak ditandatangani.
Tipe yang Ditandatangani: Mereka mewakili angka negatif atau positif (termasuk nol). Dalam tipe yang ditandatangani, rentang harus dibagi rata antara nilai +ve dan -ve. Jadi, karakter bertanda 8-bit akan memiliki nilai dari –127 hingga 127.
Tipe Tidak Bertanda Tangan: Dalam tipe unsigned, semua nilainya >= 0. Karakter unsigned 8-bit dapat berisi 0 hingga 255 (keduanya inklusif).
Nama Variabel atau Pengidentifikasi
Pengidentifikasi dapat terdiri dari beberapa huruf, angka, dan karakter garis bawah atau kombinasi keduanya. Tidak ada batasan yang dikenakan pada panjang nama.
Pengidentifikasi harus
- diawali 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;
The C++ bahasa telah mencadangkan beberapa nama untuk penggunaannya.
Ada banyak konvensi yang diterima untuk penamaan variabel bahasa pemrograman yang berbedaMengikuti konvensi ini dapat meningkatkan keterbacaan program.
- Suatu pengenal setidaknya harus memberikan beberapa indikasi mengenai maknanya.
- Nama variabel biasanya menggunakan huruf kecil—guru99, bukan Guru99 atau GURU99.
- Kelas yang kita definisikan biasanya dimulai dengan huruf besar.
- Pengidentifikasi yang berisi banyak kata harus membedakan setiap kata secara visual. Misalnya, situs web guru99_bukan situs web guru99.
C++ Deklarasi dan Definisi Variabel
Deklarasi suatu variabel membuat nama program diketahui dalam lingkup di mana variabel tersebut didefinisikan. Contoh:
int a=5; int b; char c='A';
int a,b; a=b=1000;
List initialization
int a(5);
int b{5};
Kualifikasi Const masuk C++
Misalkan ada variabel buffsize yang menyatakan banyaknya 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 hal ini, gunakan kata kunci const
const int bufSize = 512; // input buffer size
Ini mendefinisikan bufSize sebagai sebuah konstanta. Setiap upaya untuk menetapkan atau mengubah bufSize akan menghasilkan kesalahan.
Di sini, kita tidak dapat mengubah nilai dari sebuah objek const setelah kita membuatnya, objek tersebut harus dideklarasikan dan diinisialisasi. Jika tidak, kompiler akan menampilkan kesalahan.
const int i = get_size(); // ok: initialized at run time const int j = 42; // ok: initialized at compile time const int k; // error: k is uninitialized const int i = 42; const int ci = i; // ok: the value in i is copied into ci
Ruang Lingkup Variabel di C++
Ruang lingkup adalah rentang suatu program dimana variabel mempunyai arti. Sebagian besar nama yang sama dapat digunakan untuk merujuk pada entitas berbeda dalam cakupan berbeda. Variabel dapat dilihat mulai dari titik di mana variabel tersebut dideklarasikan hingga akhir cakupan di mana deklarasi tersebut muncul.
#include <iostream>
int main()
{
int sum = 0;
// sum values from 1 through 10 inclusive
for (int val = 1; val <= 10; ++val)
sum += val; // equivalent to sum = sum + val
cout << "Sum of 1 to 10 inclusive is "<< sum <<endl;
return 0;
}
Program ini mendefinisikan 3 nama, yaitu main, sum, dan val. Program ini menggunakan nama namespace std, beserta dua nama lain dari namespace tersebut—cout dan endl.
- Nama fungsi “main” didefinisikan di luar kurung kurawal. Nama fungsi main—seperti kebanyakan nama lain yang didefinisikan di luar suatu fungsi—memiliki cakupan global. Artinya setelah dideklarasikan, nama-nama yang ada di lingkup global dapat diakses di seluruh program.
- Jumlah variabel didefinisikan dalam lingkup blok yang merupakan badan fungsi utama. Itu dapat diakses dari titik deklarasinya dan seluruh isi fungsi utama lainnya. Namun, tidak di luar itu. Artinya jumlah variabel memiliki cakupan blok.
- Variabel val didefinisikan dalam lingkup “untuk pernyataan”. Ini dapat dengan mudah digunakan dalam pernyataan itu tetapi tidak di tempat lain dalam fungsi utama. Memiliki lingkup lokal.
Lingkup Bersarang
Cakupannya bisa berisi cakupan lainnya. Ruang lingkup yang terkandung (atau bersarang) disebut sebagai lingkup dalam. Ruang lingkup yang memuatnya adalah ruang lingkup luar.
#include <iostream>
using 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 name
int reused = 42; // reused has global scope
int main()
{
int unique = 0; // unique has block scope
// output #1: uses global reused; prints 42 0
cout << reused << " " << unique << endl;
int reused = 0; // new, local object named reused hides global reused
// output #2: uses local reused; prints 0 0
cout << reused << " " << unique << endl;
// output #3: explicitly requests the global reused; prints 42 0
cout << ::reused << " " << unique << endl;
return 0;
}
Keluaran #1 muncul sebelum definisi lokal digunakan kembali. Jadi, keluaran ini
pernyataan adalah pernyataan yang menggunakan nama yang digunakan kembali yang didefinisikan dalam lingkup global. Pernyataan ini menghasilkan
42 0
Keluaran #2 terjadi setelah definisi lokal digunakan kembali. Sekarang sudah masuk dalam cakupannya. Oleh karena itu, pernyataan keluaran kedua ini hanya menggunakan objek lokal bernama digunakan kembali daripada objek global dan keluaran
0 0
Keluaran #3 mengesampingkan aturan pelingkupan default menggunakan operator ruang lingkup. Ruang lingkup global tidak memiliki nama. Jadi, ketika operator cakupan(::) memiliki sisi kiri yang kosong. Ini menafsirkannya sebagai permintaan untuk mengambil nama di sisi kanan lingkup global. Dengan demikian, ekspresi tersebut menggunakan penggunaan kembali dan keluaran global
42 0
Konversi Jenis Variabel
Variabel dari satu tipe dapat diubah menjadi tipe lain. Ini dikenal sebagai “Jenis Konversi.” Mari kita lihat aturan konversi yang berbeda C++ jenis variabel:
Penetapan nilai non-bool pada variabel bool akan menghasilkan false jika nilainya 0, dan true jika tidak.
bool b = 42; // b is true
Menetapkan bool ke salah satu tipe aritmatika lainnya akan menghasilkan 1 jika bool benar dan 0 jika bool salah.
bool b = true; int i = b; // i has value 1
Menetapkan nilai floating-point ke variabel bertipe int akan menghasilkan nilai yang terpotong. Nilai yang disimpan adalah bagian sebelum koma.
int i = 3.14; // i has value 3
Menetapkan nilai int ke variabel tipe float menghasilkan bagian pecahan menjadi nol. Presisi biasanya hilang jika bilangan bulat memiliki lebih banyak bit daripada yang dapat ditampung oleh variabel mengambang.
Int i=3; double pi = i; // pi has value 3.0
Jika kita mencoba menetapkan nilai di luar rentang ke variabel bertipe unsigned, hasilnya adalah sisa nilai %(modulo)
Misalnya, tipe karakter unsigned 8-bit dapat menyimpan nilai dari 0 hingga 255, inklusif. Menetapkan nilai di luar kisaran ini akan mengakibatkan kompiler menetapkan sisa nilai tersebut modulo 256. Oleh karena itu, dengan logika di atas, penugasan –1 ke karakter 8-bit unsigned memberikan objek tersebut nilai 255.
unsigned char c = -1; // assuming 8-bit chars, c has value 255
Jika kita mencoba memberikan nilai di luar jangkauan ke objek bertipe bertanda, hasilnya tidak dapat diprediksi. Itu tidak terdefinisi. Program ini mungkin tampak berfungsi dari luar, atau mungkin macet, atau mungkin menghasilkan nilai sampah.
signed char c2 = 256; // assuming 8-bit chars, the value of c2 is undefined
Kompiler menerapkan jenis konversi yang sama ketika kita menggunakan nilai dari satu jenis di mana nilai dari jenis lain diharapkan.
int i = 42; if (i) // condition will evaluate as true i = 0;
Jika nilai ini= 0, maka kondisinya salah; semua nilai lainnya (bukan nol) menghasilkan nilai benar. Dengan konsep yang sama, ketika kita menggunakan bool dalam ekspresi aritmatika, nilainya selalu dikonversi menjadi 0 atau 1. Akibatnya, penggunaan bool dalam ekspresi aritmatika biasanya hampir pasti salah.
Perhatian: Jangan Campurkan Tipe Signed dan Unsigned
Ekspresi yang menggabungkan tanda tangan dan tidak tanda tangan dapat memberikan hasil yang mengejutkan dan salah jika nilai tandanya negatif. Seperti dibahas di atas, nilai yang ditandatangani secara otomatis dikonversi menjadi tidak ditandatangani.
Misalnya dalam ekspresi aritmatika seperti
x* y
Jika x adalah -1 dan y adalah 1, dan jika x dan y keduanya int, maka nilainya, seperti yang diharapkan, adalah -1.
Jika x adalah int dan y tidak ditandatangani, maka nilai ekspresi ini bergantung pada berapa banyak bit yang dimiliki bilangan bulat 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 a C++ program dapat dimasukkan ke dalam register menggunakan daftar kata kunci. Kata kunci register memberitahu kompiler untuk menyimpan variabel tertentu dalam register. Itu adalah pilihan kompiler apakah akan memasukkannya ke dalam register atau tidak. Umumnya compiler sendiri melakukan berbagai optimasi termasuk memasukkan beberapa variabel ke dalam register. Tidak ada batasan jumlah variabel register dalam a C++ program. Namun kompiler tidak boleh menyimpan variabel dalam register. Hal ini karena memori register sangat terbatas dan paling umum digunakan oleh OS.
Untuk menentukan:
register int i;
komentar
Komentar adalah bagian kode yang diabaikan oleh kompiler. Hal ini memungkinkan pemrogram untuk membuat catatan di area yang relevan dari kode sumber/program. Komentar datang dalam bentuk blok atau satu baris. Komentar program adalah pernyataan penjelasan. Itu dapat dimasukkan ke dalam C++ kode yang membantu siapa pun membaca kode sumbernya. Semua bahasa pemrograman mengizinkan beberapa bentuk komentar. C++ mendukung komentar satu baris dan multi-baris.
- Komentar satu baris adalah yang dimulai dengan // dan berlanjut hingga akhir baris. Jika karakter terakhir pada baris komentar adalah \ maka komentar akan dilanjutkan pada baris berikutnya.
- Komentar multi-baris adalah yang dimulai dengan /* dan diakhiri dengan */.
/* This is a comment */ /* C++ comments can also * span multiple lines */
Urutan Melarikan Diri
Beberapa karakter, seperti karakter backspace dan kontrol, tidak memiliki gambar yang terlihat. Karakter tersebut 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 mewakili karakter tersebut. Urutan escape dimulai dengan garis miring terbalik.
The C++ bahasa pemrograman mendefinisikan beberapa urutan escape:
| Apa yang dilakukannya? | Karakter |
|---|---|
| Garis baru | \n |
| Tab vertikal | \v |
| Backslash | \\ |
| Kereta kembali | \r |
| Tab horizontal | \t |
| Backspace | \b |
| Tanda tanya | \? |
| umpan formulir | \f |
| Peringatan (bel) | \a |
| Double mengutip | \ " |
| kutipan tunggal | \ ' |
Kami menggunakan escape sequence seolah-olah itu adalah satu karakter:
cout << '\n'; // prints a newline cout << "\tguru99!\n"; // prints a tab followed by "guru99!" and a newline
Kita juga dapat menulis rangkaian escape umum \x diikuti oleh satu atau lebih digit heksadesimal. Atau kita menggunakan \ diikuti oleh satu, atau dua, atau tiga digit oktal. Urutan escape yang digeneralisasi mewakili nilai numerik karakter. Beberapa contoh (dengan asumsi set karakter Latin-1):
\7 (bell) \12 (newline) \40 (blank)
\0 (null) \115 ('M') \x4d ('M')
Kita dapat menggunakan escape sequence yang telah ditentukan sebelumnya, seperti halnya kita menggunakan karakter lainnya.
cout << "Hi \x4dO\115!\n"; // prints Hi MOM! followed by a newline cout << '\115' << '\n'; // prints M followed by a newline
Ringkasan
- A C++ variabel memberi kita kemampuan penyimpanan bernama.
- C++ tipe variabel: int, double, tangki, float, string, bool, dll.
- Ruang lingkup yang terkandung (atau bersarang) disebut sebagai lingkup dalam, dan lingkup yang memuatnya adalah lingkup luar.
- Variabel dari satu tipe dapat diubah menjadi tipe lain. Ini dikenal sebagai “Jenis Konversi.”
- Variabel register lebih cepat diakses dibandingkan dengan variabel memori.
- Komentar adalah bagian kode yang diabaikan oleh kompiler.
- Beberapa karakter, seperti karakter backspace dan kontrol, tidak memiliki gambar yang terlihat.


