Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Variabel dan Tipe C++:int, double, char, string, bool

Variabel dalam C++

Variabel C++ memberi kita kemampuan penyimpanan bernama. Hal ini memungkinkan programmer untuk memanipulasi data sesuai kebutuhan. Setiap variabel memiliki tipe dalam C++. Jenis variabel membantu menentukan ukuran dan tata letak peta memori variabel, rentang nilai yang dapat disimpan dalam memori tersebut, dan rangkaian operasi yang dapat diterapkan padanya.

Dalam tutorial C++ ini, Anda akan belajar:

Tipe Dasar Variabel dalam C++

Berikut adalah tipe dasar variabel C++:

Int:

Integer adalah literal numerik (terkait dengan angka) tanpa bagian pecahan atau eksponensial. Contoh. 120, -90, dll.

Ganda:

Ini adalah nilai floating point presisi ganda. Contoh:11,22, 2,345

Karakter:

Karakter literal dibuat dengan melampirkan satu karakter di dalam tanda kutip tunggal. Misalnya:'a', 'm', 'F', 'P', '}' dll.

Mengambang:

Literal titik-mengambang adalah literal numerik yang memiliki bentuk pecahan atau bentuk eksponen. Misalnya:1.3, 2.6

Literal String:

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 dalam C++

Berikut adalah beberapa aturan umum untuk penamaan variabel:

Tipe Data Variabel C++

C++ mendefinisikan seluruh rangkaian tipe primitif

kekosongan type tidak memiliki nilai yang terkait dengannya dan hanya dapat digunakan dalam beberapa keadaan. Ini paling sering sebagai tipe pengembalian fungsi yang tidak mengembalikan nilai.

Jenis aritmatika termasuk karakter, bilangan bulat, nilai Boolean, dan angka floating-point. Jenis aritmatika jika dibagi lagi menjadi 2 kategori

  1. Jenis titik-mengambang . Float (atau tipe mengambang) mewakili angka desimal. Standar IEEE menentukan jumlah minimum digit signifikan. Kebanyakan kompiler biasanya memberikan presisi lebih dari minimum yang ditentukan. Biasanya, float direpresentasikan dalam 32 bit, double dalam 64 bit, dan long double dalam 96 atau 128 bit.
  2. Jenis integral (yang mencakup karakter, bilangan bulat, dan tipe Boolean). Boolean type hanya memiliki dua jenis nilai:True atau False. Ada beberapa char jenis, yang sebagian besar ada untuk mendukung internasionalisasi. Tipe karakter paling dasar adalah char. Sebuah char berukuran sama dengan satu byte mesin yang berarti satu byte.

Jenis integral dapat ditandatangani atau tidak ditandatangani.

Jenis yang Ditandatangani :Mereka mewakili angka negatif atau positif (termasuk nol). Dalam tipe yang ditandatangani, rentang harus dibagi rata antara nilai +ve dan -ve. Dengan demikian, karakter bertanda 8-bit akan menyimpan nilai dari –127 hingga 127.

Jenis Tidak Ditandatangani :Dalam tipe unsigned, semua nilai adalah>=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 beberapa kombinasinya. Tidak ada batasan yang dikenakan pada panjang nama.

Pengidentifikasi harus

// 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.

Deklarasi dan Definisi Variabel C++

Deklarasi variabel membuat nama program diketahui dalam lingkup di mana ia didefinisikan. Contoh:

int a=5;
int b;
char c='A'; 
int a,b;
a=b=1000;
List initialization
int a(5);
int b{5};

Qualifier Const 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 diubah.

Dalam kasus seperti itu, gunakan kata kunci const

const int bufSize = 512;    // input buffer size

Ini mendefinisikan bufSize sebagai konstanta. Setiap upaya untuk menetapkan atau mengubah bufSize memberikan kesalahan.

Di sini, kita tidak dapat mengubah nilai objek const setelah kita membuatnya, itu harus dideklarasikan dan diinisialisasi wajib. Kalau tidak, kompiler melempar 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 

Cakupan Variabel dalam C++

Ruang lingkup adalah rentang program di mana variabel memiliki arti. Sebagian besar nama yang sama dapat digunakan untuk merujuk ke entitas yang berbeda dalam lingkup yang berbeda. Variabel terlihat dari titik di mana mereka dideklarasikan sampai akhir lingkup di mana deklarasi mereka 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. Ia menggunakan namespace name std, bersama dengan dua nama lain dari namespace itu—cout dan endl.

Cakupan Tersarang

Lingkup dapat berisi lingkup lain. Ruang lingkup yang terkandung (atau bersarang) disebut sebagai ruang lingkup dalam. Lingkup yang berisi adalah 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 salah satu 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 dalam ruang lingkup. Oleh karena itu, pernyataan keluaran kedua ini hanya menggunakan objek lokal bernama reused daripada objek global dan keluaran

0 0

Keluaran #3 menimpa aturan pelingkupan default menggunakan operator cakupan. Lingkup global tidak memiliki nama. Jadi, ketika operator ruang lingkup(::) memiliki sisi kiri yang kosong. Ini menafsirkannya sebagai permintaan untuk mengambil nama di sisi kanan lingkup global. Dengan demikian, ekspresi menggunakan global reused dan output

42 0

Konversi Jenis Variabel

Variabel dari satu jenis dapat diubah menjadi yang lain. Ini dikenal sebagai "Konversi Jenis." Mari kita lihat aturan untuk mengonversi tipe variabel C++ yang berbeda:

Menetapkan non-bool ke variabel bool menghasilkan false jika nilainya 0 dan true sebaliknya.

bool b = 42;            // b is true

Menetapkan bool ke salah satu tipe aritmatika lainnya 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 tipe int 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 tidak bertanda, hasilnya adalah sisa nilai %(modulo)

Misalnya, tipe karakter tidak bertanda 8-bit dapat menyimpan nilai dari 0 hingga 255, inklusif. Menetapkan nilai di luar rentang ini akan mengakibatkan kompiler menetapkan sisa nilai itu modulo 256. Oleh karena itu, dengan logika di atas, penetapan -1 ke char 8-bit yang tidak ditandatangani memberi objek itu nilai 255.

unsigned char c = -1;   // assuming 8-bit chars, c has value 255

Jika kami mencoba menetapkan nilai di luar rentang ke objek bertipe bertanda, hasilnya tidak dapat diprediksi. Ini tidak terdefinisi. Program mungkin tampak berfungsi di luar, atau mungkin macet, atau mungkin menghasilkan nilai sampah.

signed char c2 = 256;   // assuming 8-bit chars, the value of c2 is undefined

Kompilator menerapkan jenis konversi yang sama ini saat kita menggunakan nilai dari satu jenis di mana nilai jenis lain diharapkan.

int i = 42;
if (i) // condition will evaluate as true
i = 0; 

Jika nilai ini =0, maka kondisinya salah; semua nilai lain (bukan nol) menghasilkan true. Dengan konsep yang sama, ketika kita menggunakan bool dalam ekspresi aritmatika, nilainya selalu dikonversi menjadi 0 atau 1. Akibatnya, menggunakan bool dalam ekspresi aritmatika biasanya hampir pasti salah.

Perhatian:Jangan Campurkan Jenis Bertanda dan Tidak Bertanda

Ekspresi yang menggabungkan tanda dan tidak dapat menghasilkan hasil yang mengejutkan dan salah ketika nilai yang ditandatangani adalah negatif. Seperti yang 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, -1.

Jika x adalah int dan y tidak bertanda, maka nilai ekspresi ini bergantung pada berapa banyak bit yang dimiliki sebuah bilangan bulat pada mesin kompilasi. Di mesin kami, ekspresi ini menghasilkan 4294967295.

Mendaftarkan Variabel

Variabel register lebih cepat diakses dibandingkan dengan variabel memori. Jadi, variabel yang sering digunakan dalam program C++ dapat dimasukkan ke dalam register menggunakan register kata kunci. Kata kunci register memberitahu compiler untuk menyimpan variabel yang diberikan dalam register. Itu pilihan kompiler apakah akan memasukkannya ke dalam register atau tidak. Umumnya, compiler sendiri melakukan berbagai optimasi yang termasuk menempatkan beberapa variabel dalam register. Tidak ada batasan jumlah variabel register dalam program C++. Tetapi kompiler mungkin tidak menyimpan variabel dalam register. Ini karena memori register sangat terbatas dan paling umum digunakan oleh OS.

Untuk menentukan:

register int i;

Komentar

Komentar adalah bagian dari kode yang diabaikan oleh kompiler. Ini memungkinkan pemrogram untuk membuat catatan di area yang relevan dari kode sumber/program. Komentar datang baik dalam bentuk blok atau baris tunggal. Komentar program adalah pernyataan penjelasan. Itu dapat dimasukkan dalam kode C++ yang membantu siapa pun membaca kode sumbernya. Semua bahasa pemrograman memungkinkan beberapa bentuk komentar. C++ mendukung komentar satu baris dan multi-baris.

/* This is a comment */
/* C++ comments can  also 
* span multiple lines 
*/

Urutan Escape

Beberapa karakter, seperti spasi mundur 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 pelarian untuk mewakili karakter tersebut. Urutan pelarian dimulai dengan garis miring terbalik.

Bahasa pemrograman C++ mendefinisikan beberapa escape sequence:

Apa fungsinya? Karakter

Baris baru

\n

Tab vertikal

\v

Garis miring terbalik

\\

Kereta kembali

\r

Tab horisontal

\t

Spasi mundur

\b

Tanda tanya

\?

Umpan formulir

\f

Peringatan (bel)

\a

Kutipan ganda

\"

Kutipan tunggal

\’

Kami menggunakan urutan pelarian 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 urutan escape umum \x diikuti oleh satu atau lebih digit heksadesimal. Atau kita menggunakan \ diikuti oleh satu, atau dua, atau tiga digit oktal. Urutan pelarian umum 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 urutan escape yang telah ditentukan sebelumnya, karena kita menggunakan karakter lain.

cout << "Hi \x4dO\115!\n";  // prints Hi MOM! followed by a newline
cout << '\115' << '\n';     // prints M followed by a newline 

Ringkasan


Bahasa C

  1. Variabel C# dan Tipe Data (Primitif)
  2. Variabel C++, Literal dan Konstanta
  3. Tipe Data C++
  4. C Variabel, Konstanta dan Literal
  5. Tipe Data C
  6. Jenis Fungsi yang Ditentukan Pengguna dalam Pemrograman C
  7. Kelas Penyimpanan C
  8. Operator di C++ dengan Contoh:Apa itu, Jenis dan Program
  9. Java - Tipe Variabel
  10. C - Variabel