• Tidak ada hasil yang ditemukan

pengenalan tipe data Bahasa dasar c

N/A
N/A
Protected

Academic year: 2018

Membagikan "pengenalan tipe data Bahasa dasar c"

Copied!
25
0
0

Teks penuh

(1)

C + + Bahasa

Tutorial ini menjelaskan C + + bahasa dari dasar sampai dengan fitur-fitur terbaru yang diperkenalkan oleh C + +11. Bab memiliki orientasi praktis, dengan contoh program di semua bagian mulai berlatih apa yang sedang dijelaskan segera.

PENGANTAR

compiler

Alat-alat penting yang diperlukan untuk mengikuti tutorial ini adalah sebuah komputer dan toolchain compiler dapat mengkompilasi C + + kode dan membangun program untuk berjalan di atasnya.

C + + adalah bahasa yang telah berkembang banyak selama bertahun-tahun, dan tutorial ini

menjelaskan banyak fitur tambahan baru untuk bahasa. Oleh karena itu, dalam rangka untuk benar mengikuti tutorial, compiler baru-baru ini diperlukan. Ini akan mendukung (bahkan jika hanya sebagian) fitur yang diperkenalkan oleh standar 2011.

Banyak vendor compiler mendukung fitur-fitur baru pada derajat yang berbeda. Lihat bagian bawah halaman ini untuk beberapa kompiler yang dikenal untuk mendukung fitur yang dibutuhkan. Beberapa dari mereka adalah gratis!

Jika karena alasan tertentu, Anda perlu menggunakan beberapa kompiler yang lebih tua, Anda dapat mengakses versi lama dari tutorial ini di sini (tidak lagi diperbarui).

Apa compiler?

Komputer hanya mengerti satu bahasa dan bahasa yang terdiri dari set instruksi yang dibuat dari satu dan nol. Bahasa komputer ini tepat disebut bahasa mesin.

Sebuah instruksi tunggal ke komputer bisa terlihat seperti ini:

(2)

Program bahasa mesin Sebuah komputer tertentu yang memungkinkan pengguna untuk

memasukkan dua nomor, menambahkan dua angka bersama-sama, dan menampilkan total dapat mencakup instruksi kode mesin ini:

00000 10011110 00001 11110100 00010 10011110 00011 11010100 00100 10111111 00101 00000000

Seperti yang dapat Anda bayangkan, pemrograman komputer secara langsung di bahasa mesin hanya menggunakan satu dan nol sangat membosankan dan rawan kesalahan. Untuk membuat program lebih mudah, bahasa tingkat tinggi telah dikembangkan. Program tingkat tinggi juga memudahkan programmer untuk memeriksa dan memahami program-program masing-masing lebih mudah.

Ini adalah bagian dari kode yang ditulis dalam C + + yang menyelesaikan tujuan yang sama:

1 int a, b, sum; 2

3 cin >> a; 4

5

6 cin >> b; 7 sum = a + b;

(3)

cout << jumlah << endl;

Bahkan jika Anda tidak bisa benar-benar memahami kode di atas, Anda harus dapat menghargai betapa akan lebih mudah untuk program di C + + bahasa yang bertentangan dengan bahasa mesin.

Karena komputer hanya dapat memahami bahasa mesin dan manusia ingin menulis dalam bahasa tingkat tinggi bahasa tingkat tinggi harus ditulis ulang (diterjemahkan) ke dalam bahasa mesin di beberapa titik. Hal ini dilakukan oleh program khusus yang disebut kompiler, interpreter, atau perakit yang dibangun ke dalam berbagai aplikasi pemrograman.

C + + dirancang untuk menjadi bahasa yang dikompilasi, yang berarti bahwa itu umumnya diterjemahkan ke dalam bahasa mesin yang dapat dimengerti langsung oleh sistem, pembuatan program yang dihasilkan sangat efisien. Untuk itu, satu set alat yang diperlukan, yang dikenal sebagai toolchain pembangunan, yang inti adalah compiler dan linker nya.

program konsol

Program konsol adalah program yang menggunakan teks untuk berkomunikasi dengan pengguna dan lingkungan, seperti mencetak teks ke layar atau membaca input dari keyboard.

Program konsol mudah untuk berinteraksi dengan, dan umumnya memiliki perilaku diprediksi yang identik di semua platform. Mereka juga sederhana untuk menerapkan dan dengan demikian sangat berguna untuk mempelajari dasar-dasar bahasa pemrograman: Contoh dalam tutorial ini semua program konsol.

Cara untuk mengkompilasi program-program konsol tergantung pada alat tertentu yang Anda gunakan.

Cara termudah bagi pemula untuk mengkompilasi C + + program adalah dengan menggunakan Integrated Development Environment (IDE). IDE umumnya mengintegrasikan beberapa alat

(4)

Di sini Anda memiliki petunjuk tentang cara untuk mengkompilasi dan menjalankan program konsol menggunakan berbeda gratis Integrated Development Interfaces (IDE):

Program IDE Landasan Console

Code :: blok Windows / Linux / MacOS Kompilasi konsol program menggunakan Code :: blok Studio Express Windows Kompilasi konsol program Visual menggunakan VS ekspres 2013 Konsol program Dev-C + + Windows Kompilasi menggunakan Dev-C + +

Jika Anda kebetulan memiliki lingkungan Linux atau Mac dengan fitur pembangunan, Anda harus mampu menyusun salah satu contoh langsung dari terminal hanya dengan termasuk C + +11 bendera di perintah untuk compiler:

Compiler Landasan Command

GCC Linux, antara lain ... g+ +-std = c + +0 x example.cpp-o example_program

Dentang OS X, antara lain ... dentang + +-std = c + +11-stdlib = libc + + example.cpp-o example_program

DASAR-DASAR DARI C + +

Struktur program

Cara terbaik untuk belajar bahasa pemrograman adalah dengan menulis program. Biasanya, program pertama pemula menulis adalah sebuah program yang disebut "Hello World", yang hanya mencetak "Hello World" ke layar komputer Anda. Meskipun sangat sederhana, mengandung semua komponen fundamental C + + program memiliki:

(5)

7

/ / Program pertama saya di C + + # include

int main () {

std :: cout << "Hello World"; }

Hello World! Edit & Run

Panel kiri atas menunjukkan C + + kode untuk program ini. Panel kanan menunjukkan hasil ketika program ini dijalankan oleh komputer. Angka-angka abu-abu di sebelah kiri panel adalah nomor baris untuk membuat membahas program dan meneliti kesalahan lebih mudah. Mereka bukan bagian dari program.

Mari kita memeriksa baris demi baris program ini:

Line 1: / / Program pertama saya di C + +

Dua tanda garis miring menunjukkan bahwa sisa garis adalah komentar yang dimasukkan oleh programmer, tetapi yang tidak memiliki efek pada perilaku program. Programmer menggunakannya untuk menyertakan penjelasan singkat atau observasi-observasi tentang kode atau program. Dalam kasus ini, itu adalah deskripsi singkat pengantar program.

Baris 2: # include

(6)

Line 3: Sebuah baris kosong.

Baris kosong tidak berpengaruh pada program. Mereka hanya meningkatkan pembacaan kode.

Line 4: int main ()

Baris ini memulai deklarasi fungsi. Pada dasarnya, fungsi adalah sekelompok pernyataan kode yang diberi nama: dalam hal ini, ini memberikan nama "main" dengan kelompok laporan kode yang mengikuti. Fungsi akan dibahas secara rinci pada bab selanjutnya, tapi pada dasarnya, definisi mereka diperkenalkan dengan suksesi tipe (int), nama (utama) dan sepasang tanda kurung (()), opsional termasuk parameter.

Fungsi bernama utama adalah fungsi khusus dalam semua C + + program; itu adalah fungsi dipanggil saat program dijalankan. Pelaksanaan semua C + + program dimulai dengan fungsi utama, terlepas dari mana fungsi sebenarnya terletak dalam kode.

Baris 5 dan 7: {dan}

Penjepit terbuka ({) pada baris 5 menunjukkan awal definisi fungsi utama, dan penjepit penutupan (}) pada baris 7, menunjukkan akhir. Semuanya antara kawat gigi ini adalah tubuh fungsi yang

mendefinisikan apa yang terjadi ketika utama yang disebut. Semua fungsi menggunakan kawat gigi untuk menunjukkan awal dan akhir definisi mereka.

Line 6: std :: cout << "Hello World";

Baris ini adalah C + + pernyataan. Pernyataan adalah ekspresi yang benar-benar dapat menghasilkan beberapa efek. Ini adalah daging dari sebuah program, menentukan perilaku yang sebenarnya. Laporan dieksekusi dalam urutan yang sama bahwa mereka muncul dalam tubuh fungsi itu.

Pernyataan ini memiliki tiga bagian: Pertama, std :: cout, yang mengidentifikasi standar perangkat output karakter (biasanya, ini adalah layar komputer). Kedua, operator penyisipan (<<), yang menunjukkan bahwa apa yang berikut dimasukkan ke dalam std :: cout. Akhirnya, kalimat dalam tanda kutip ("Halo dunia!"), Adalah konten dimasukkan ke output standar.

(7)

harus diakhiri dengan karakter titik koma. Salah satu kesalahan sintaks yang paling umum di C + + adalah lupa untuk mengakhiri pernyataan dengan titik koma.

Anda mungkin telah memperhatikan bahwa tidak semua baris program ini melakukan tindakan saat kode dijalankan. Ada baris yang berisi komentar (dimulai dengan / /). Ada garis dengan arahan untuk preprocessor (yang dimulai dengan #). Ada garis yang mendefinisikan fungsi (dalam kasus ini, fungsi utama). Dan, akhirnya, sejalan dengan pernyataan diakhiri dengan tanda titik koma (penyisipan ke pengadilan), yang berada dalam blok yang dibatasi oleh kurung ({}) dari fungsi utama.

Program ini telah terstruktur dalam baris yang berbeda dan benar menjorok, untuk membuatnya lebih mudah untuk dipahami bagi manusia membacanya. Tapi C + + tidak memiliki aturan ketat pada lekukan atau cara untuk membagi instruksi dalam baris yang berbeda. Misalnya, alih-alih

int main () {

std :: cout << "Hello World"; }

Edit & Run

Kita bisa menulis:

int main () {std :: cout << "Hello World"; } Edit & Run

semua dalam satu baris, dan ini akan memiliki arti yang sama persis dengan kode sebelumnya.

Dalam C + +, pemisahan antara pernyataan ditentukan dengan titik koma berakhir (;), dengan pemisahan dalam baris yang berbeda tidak mattering sama sekali untuk tujuan ini. Banyak

(8)

Pembagian kode dalam baris yang berbeda hanya melayani untuk membuatnya lebih mudah dibaca dan skematis untuk manusia yang mungkin membacanya, tapi tidak berpengaruh pada perilaku aktual dari program ini.

Sekarang, mari kita tambahkan pernyataan tambahan untuk program pertama kami:

/ / Program kedua saya di C + + # include

int main () {

std :: cout << "Hello World"; std :: cout << "Aku C + + program"; }

Hello World! Aku C + + program Edit & Run

Dalam hal ini, program ini dilakukan dua sisipan ke dalam std :: cout dalam dua pernyataan yang berbeda. Sekali lagi, pemisahan dalam baris yang berbeda dari kode hanya memberikan pembacaan yang lebih besar untuk program ini, karena utama bisa saja sempurna berlaku didefinisikan dengan cara ini:

int main () {std :: cout << "Hello World"; std :: cout << "Aku C + + program"; } Edit & Run

(9)

int main () {

std :: cout << "Hello World!"; std :: cout

<< "Aku C + + program"; }

Edit & Run

Dan hasilnya akan lagi sudah persis sama seperti pada contoh sebelumnya.

Arahan preprocessor (yang dimulai dengan #) adalah keluar dari aturan umum ini karena mereka tidak pernyataan. Mereka adalah garis dibaca dan diproses oleh preprocessor sebelum kompilasi yang tepat dimulai. Arahan Preprocessor harus dirinci dalam jalur sendiri dan, karena mereka bukan merupakan pernyataan, tidak harus diakhiri dengan titik koma (;).

komentar

Seperti disebutkan di atas, komentar tidak mempengaruhi operasi dari program; Namun, mereka menyediakan alat penting untuk mendokumentasikan secara langsung dalam kode sumber program apa yang dilakukan dan bagaimana beroperasi.

C + + mendukung dua cara kode berkomentar: / / Baris komentar

/ * Blok komentar * /

(10)

Mari menambahkan komentar ke program kedua kami:

/ * Program kedua saya di C + + dengan lebih komentar * /

# include int main () {

std :: cout << "Hello World"; / / Prints Hello World!

std :: cout << "Aku C + + program"; / / Prints Aku C + + program }

Hello World! Aku C + + program Edit & Run

Jika komentar yang termasuk dalam kode sumber dari program tanpa menggunakan karakter komentar kombinasi / /, / * atau * /, compiler membawa mereka seolah-olah mereka C + + ekspresi, kemungkinan besar menyebabkan kompilasi gagal dengan satu, atau beberapa, pesan kesalahan.

Menggunakan namespace std

Jika Anda telah melihat C + + kode sebelumnya, Anda mungkin telah melihat cout yang digunakan sebagai pengganti std :: cout. Kedua nama objek yang sama: yang pertama menggunakan nama wajar tanpa pengecualian nya (pengadilan), sedangkan yang kedua memenuhi syarat langsung dalam std namespace (seperti std :: cout).

cout merupakan bagian dari perpustakaan standar, dan semua elemen dalam standar C + + perpustakaan dinyatakan dalam apa yang disebut namespace: std namespace.

(11)

menggunakan namespace std;

Deklarasi di atas memungkinkan semua elemen dalam namespace std untuk diakses secara wajar tanpa pengecualian (tanpa std :: prefix).

Dengan pemikiran ini, contoh terakhir dapat ditulis ulang untuk membuat penggunaan wajar tanpa pengecualian dari pengadilan sebagai:

/ / Program kedua saya di C + + # include

menggunakan namespace std;

int main () {

cout << "Hello World"; cout << "Aku C + + program"; }

Hello World! Aku C + + program Edit & Run

Kedua cara mengakses elemen dari namespace std (kualifikasi eksplisit dan menggunakan deklarasi) yang berlaku di C + + dan menghasilkan perilaku yang sama persis. Untuk kesederhanaan, dan agar lebih mudah dibaca, contoh dalam tutorial ini akan lebih sering menggunakan pendekatan yang terakhir ini dengan menggunakan deklarasi, meskipun catatan bahwa kualifikasi eksplisit adalah satu-satunya cara untuk menjamin bahwa nama tabrakan tidak pernah terjadi.

(12)

Variabel dan tipe

Kegunaan dari "Hello World" program ditunjukkan pada bab sebelumnya agak dipertanyakan. Kami harus menulis beberapa baris kode, kompilasi mereka, dan kemudian jalankan program yang dihasilkan, hanya untuk mendapatkan hasil dari sebuah kalimat sederhana yang ditulis di layar. Ini tentu akan jauh lebih cepat untuk mengetik kalimat keluaran diri kita sendiri.

Namun, program ini tidak terbatas hanya untuk mencetak teks sederhana di layar. Dalam rangka untuk pergi sedikit lebih lanjut dan menjadi dapat menulis program yang melakukan tugas-tugas yang berguna yang benar-benar menyelamatkan kita bekerja, kita perlu memperkenalkan konsep variabel.

Mari kita bayangkan bahwa saya meminta Anda untuk mengingat nomor 5, dan kemudian saya meminta Anda untuk juga menghafal nomor 2 pada saat yang sama. Anda baru saja disimpan dua nilai yang berbeda dalam memori (5 dan 2) Anda. Sekarang, jika saya meminta Anda untuk

menambahkan 1 ke nomor pertama yang saya katakan, Anda harus tetap mempertahankan nomor 6 (yang adalah 5 +1) dan 2 dalam memori Anda. Lalu kita bisa, misalnya, kurangi nilai-nilai ini dan memperoleh 4 sebagai hasilnya.

Seluruh proses yang dijelaskan di atas adalah perumpamaan dari apa komputer dapat dilakukan dengan dua variabel. Proses yang sama dapat dinyatakan dalam C + + dengan set berikut pernyataan:

1 a = 5;

2 b = 2; 3 a = a + 1; 4 hasil = a - b; a = 5;

(13)

Jelas, ini adalah contoh yang sangat sederhana, karena kita hanya menggunakan dua nilai integer kecil, tetapi menganggap bahwa komputer Anda dapat menyimpan jutaan angka seperti ini pada waktu yang sama dan melakukan operasi matematika canggih dengan mereka.

Kita sekarang dapat mendefinisikan variabel sebagai bagian dari memori untuk menyimpan nilai.

Setiap variabel membutuhkan nama yang mengidentifikasi dan membedakannya dari yang lain. Sebagai contoh, dalam kode sebelumnya nama-nama variabel yang a, b, dan hasilnya, tapi kami bisa disebut variabel setiap nama kami bisa datang dengan, selama mereka itu valid C + +

pengidentifikasi.

identifier

Sebuah identifier yang valid adalah urutan satu atau lebih huruf, angka, atau karakter garis bawah (_). Spasi, tanda baca, dan simbol tidak dapat menjadi bagian dari sebuah identifier. Selain itu, pengidentifikasi harus selalu diawali dengan huruf. Mereka juga dapat dimulai dengan karakter garis bawah (_), tapi pengenal tersebut-on-kasus dianggap disediakan untuk kata kunci-compiler tertentu atau pengidentifikasi eksternal, serta pengidentifikasi mengandung dua karakter garis bawah berturut-turut di mana saja yang paling. Dalam hal bisa mereka mulai dengan angka.

C + + menggunakan sejumlah kata kunci untuk mengidentifikasi operasi dan deskripsi data; Oleh karena itu, pengidentifikasi yang dibuat oleh seorang programmer tidak bisa cocok dengan kata kunci ini. Kata kunci reserved standar yang tidak dapat digunakan untuk programmer menciptakan

pengidentifikasi adalah:

alignas, alignof, dan, and_eq, asm, auto, bitand, bitor, bool, istirahat, kasus, menangkap, char, char16_t, char32_t, kelas, xor, const, constexpr, const_cast, melanjutkan, decltype, default,

menghapus, lakukan, ganda, dynamic_cast, else, enum, eksplisit, ekspor, extern, false, float, untuk, teman, goto, jika, inline, int, panjang, bisa berubah, namespace, new, noexcept, tidak, not_eq, nullptr, operator, atau, or_eq, swasta, dilindungi, publik, daftar, reinterpret_cast, kembali, singkat, menandatangani, sizeof, statis, static_assert, static_cast, struct, switch, Template, ini, thread_local, melempar, benar, coba, typedef, typeid, typename, serikat, unsigned, menggunakan, virtual, batal, volatile, wchar_t, sementara, xor, xor_eq

(14)

Sangat penting: The C + + bahasa adalah "case sensitive" bahasa. Itu berarti bahwa sebuah identifier ditulis dalam huruf kapital tidak sama satu sama lain dengan nama yang sama tetapi ditulis dalam huruf kecil. Jadi, misalnya, variabel RESULT tidak sama dengan variable hasil atau variabel Result. Ini adalah tiga identifier yang berbeda pengidentifikasian tiga variabel yang berbeda.

Tipe data dasar

Nilai-nilai variabel yang disimpan di suatu tempat di lokasi yang ditentukan dalam memori komputer sebagai angka satu dan nol. Program kami tidak perlu mengetahui lokasi yang tepat di mana variabel disimpan; itu hanya bisa menyebutnya dengan namanya. Apa program perlu diperhatikan adalah jenis data yang disimpan dalam variabel. Ini tidak sama untuk menyimpan bilangan bulat sederhana seperti itu adalah untuk menyimpan surat atau angka floating-point yang besar; meskipun mereka semua diwakili menggunakan angka satu dan nol, mereka tidak diinterpretasikan dengan cara yang sama, dan dalam banyak kasus, mereka tidak menempati jumlah memori yang sama.

Tipe data dasar adalah tipe dasar dilaksanakan langsung oleh bahasa yang mewakili unit

penyimpanan dasar yang didukung secara native oleh kebanyakan sistem. Mereka terutama dapat diklasifikasikan menjadi:

Tipe karakter: Mereka dapat mewakili satu karakter, seperti 'A' atau '$'. Jenis yang paling dasar adalah char, yang adalah karakter satu-byte. Jenis lain juga disediakan untuk karakter yang lebih luas. Jenis bilangan integer: Mereka dapat menyimpan seluruh nilai angka, seperti 7 atau 1024 Mereka ada dalam berbagai ukuran, dan baik dapat ditandatangani atau unsigned, tergantung pada apakah mereka mendukung nilai-nilai negatif atau tidak..

Jenis floating-point: Mereka dapat mewakili nilai-nilai yang nyata, seperti 3,14 atau 0,01, dengan berbagai tingkat presisi, tergantung pada mana dari tiga jenis floating-point digunakan.

Tipe Boolean: The boolean jenis, yang dikenal di C + + sebagai bool, hanya dapat mewakili satu dari dua negara, benar atau salah.

Berikut adalah daftar lengkap jenis mendasar dalam C + +: Nama Type kelompok * Catatan pada ukuran / presisi

Tipe karakter hangus Tepat satu byte dalam ukuran. Setidaknya 8 bit. char16_t Tidak lebih kecil dari arang. Setidaknya 16 bit.

char32_t Tidak lebih kecil dari char16_t. Setidaknya 32 bit. wchar_t dapat mewakili terbesar didukung set karakter.

(15)

ditandatangani int pendek Tidak lebih kecil dari arang. Setidaknya 16 bit. ditandatangani int Tidak lebih kecil dari pendek. Setidaknya 16 bit. ditandatangani lama int Tidak lebih kecil dari int. Setidaknya 32 bit. ditandatangani lama int Tidak lebih kecil dari panjang. Setidaknya 64 bit.

Tipe integer (unsigned) unsigned char (ukuran yang sama seperti rekan-rekan mereka ditandatangani) Presisi ganda tidak kurang dari float

panjang Presisi ganda tidak kurang dari dua kali lipat Boolean tipe bool

Jenis void void tidak ada penyimpanan Null pointer decltype (nullptr)

* Namanama tipe integer tertentu dapat disingkat tanpa ditandatangani dan int komponen mereka -hanya bagian tidak dalam huruf miring diperlukan untuk mengidentifikasi jenis, bagian yang dicetak miring adalah opsional. Yaitu, ditandatangani int pendek dapat disingkat ditandatangani pendek, int pendek, atau hanya pendek; mereka semua mengidentifikasi jenis dasar yang sama.

Dalam masing-masing kelompok di atas, perbedaan antara jenis hanya ukuran mereka (yaitu, berapa banyak yang mereka tempati dalam memori): tipe pertama dalam setiap kelompok adalah yang terkecil, dan yang terakhir adalah yang terbesar, dengan masing-masing jenis yang setidaknya sama besar seperti yang mendahuluinya dalam kelompok yang sama. Selain itu, jenis dalam kelompok memiliki sifat yang sama.

(16)

dan mesin; setiap pelaksanaan compiler dapat menentukan ukuran untuk jenis yang sesuai dengan arsitektur terbaik di mana program ini akan berjalan. Ukuran ini spesifikasi agak generik untuk jenis memberikan C + + bahasa banyak fleksibilitas untuk disesuaikan dengan bekerja secara optimal di semua jenis platform, baik sekarang dan masa depan.

Jenis ukuran di atas dinyatakan dalam bit; lebih bit tipe telah, nilai-nilai lebih jelas dapat mewakili, tetapi pada saat yang sama, juga mengkonsumsi lebih banyak ruang di memori:

Ukuran Unik nilai representable Notes 8-bit 256 = 28

16-bit 65 536 = 216

32-bit 4 294 967 296 = 232 (~ 4 miliar)

64-bit 18 446 744 073 309 551 616 = 264 (~ 18 miliar miliar)

Untuk jenis integer, memiliki nilai lebih representable berarti bahwa rentang nilai mereka dapat mewakili lebih besar; misalnya, 16-bit unsigned bilangan bulat akan mampu mewakili 65536 nilai yang berbeda dalam kisaran 0-65535, sementara mitranya ditandatangani akan mampu mewakili, pada kebanyakan kasus, nilai antara -32768 dan 32767. Perhatikan bahwa kisaran nilai-nilai positif adalah sekitar dibelah dua jenis ditandatangani dibandingkan dengan unsigned jenis, karena fakta bahwa salah satu dari 16 bit yang digunakan untuk tanda; ini adalah perbedaan yang relatif sederhana dalam jangkauan, dan jarang membenarkan penggunaan jenis unsigned murni berdasarkan rentang nilai positif yang mereka dapat mewakili.

Untuk jenis floating-point, ukuran mempengaruhi presisi mereka, dengan memiliki lebih atau kurang signifikan bit untuk eksponen dan mereka.

Jika ukuran atau presisi dari jenis ini tidak menjadi perhatian, maka char, int, dan double biasanya dipilih untuk mewakili karakter, bilangan bulat, dan nilai-nilai floating-point, masing-masing. Jenis lain dalam kelompok masing-masing hanya digunakan dalam kasus-kasus yang sangat khusus.

(17)

Jenis-jenis yang dijelaskan di atas (karakter, integer, floating-point, dan boolean) secara kolektif dikenal sebagai jenis aritmatika. Tapi dua jenis dasar tambahan yang ada: void, yang mengidentifikasi kekurangan dari jenis; dan jenis nullptr, yang merupakan tipe khusus dari pointer. Kedua jenis akan dibahas lebih lanjut dalam bab mendatang tentang pointer.

C + + mendukung berbagai jenis berdasarkan jenis mendasar yang dibahas di atas; jenis lain yang dikenal sebagai tipe data majemuk, dan salah satu kekuatan utama dari bahasa C + +. Kita juga akan melihat mereka secara lebih rinci dalam bab-bab selanjutnya.

Deklarasi variabel

C + + adalah bahasa kuat-mengetik, dan mengharuskan setiap variabel dapat dinyatakan dengan jenisnya sebelum digunakan pertama. Ini memberitahu compiler ukuran untuk memesan dalam memori untuk variabel dan bagaimana menafsirkan nilainya. Sintaks untuk mendeklarasikan variabel baru dalam C + + sangat mudah: kita hanya menulis jenis diikuti dengan nama variabel (yaitu, identifier-nya). Sebagai contoh:

int a;

mengapung mynumber;

Ini adalah dua berlaku deklarasi variabel. Yang pertama menyatakan variabel bertipe int dengan identifier a. Yang kedua menyatakan variabel tipe float dengan identifier mynumber. Setelah

menyatakan, variabel dan mynumber dapat digunakan dalam seluruh lingkup mereka dalam program ini.

Jika mendeklarasikan lebih dari satu variabel dari jenis yang sama, mereka semua dapat dinyatakan dalam sebuah pernyataan tunggal dengan memisahkan pengidentifikasi mereka dengan koma. Sebagai contoh:

(18)

Ini menyatakan tiga variabel (a, b dan c), mereka semua tipe int, dan memiliki arti yang sama persis seperti:

int a; int b; int c;

Untuk melihat apa deklarasi variabel terlihat seperti beraksi dalam sebuah program, mari kita lihat di seluruh C + + kode contoh tentang memori mental diusulkan di awal bab ini:

/ / Operasi dengan variabel # include

menggunakan namespace std; int main ()

{

/ / Variabel menyatakan: int a, b;

int hasil;

/ / Proses: a = 5; b = 2; a = a + 1; Hasil = a - b;

/ / Mencetak hasilnya: cout << hasil;

(19)

return 0; }

4

Edit & Run

Jangan khawatir jika sesuatu yang lain daripada deklarasi variabel sendiri terlihat sedikit aneh bagi Anda. Sebagian besar akan dijelaskan secara lebih rinci dalam bab-bab berikutnya.

Inisialisasi variabel

Ketika variabel dalam contoh di atas dideklarasikan, mereka memiliki nilai yang belum ditentukan sampai mereka ditugaskan nilai untuk pertama kalinya. Tetapi adalah mungkin untuk sebuah variabel memiliki nilai tertentu dari saat itu dinyatakan. Ini disebut inisialisasi variabel.

Dalam C + +, ada tiga cara untuk menginisialisasi variabel. Mereka semua sama dan mengingatkan pada evolusi bahasa selama bertahun-tahun:

Yang pertama, yang dikenal sebagai c-seperti inisialisasi (karena diwarisi dari bahasa C), terdiri dari menambahkan tanda yang sama diikuti oleh nilai variabel yang diinisialisasi:

Jenis identifier = initial_value;

Sebagai contoh, untuk mendeklarasikan variabel bertipe int disebut x dan menginisialisasi ke nilai nol dari saat yang sama itu dinyatakan, kita dapat menulis:

int x = 0;

(20)

Jenis identifier (initial_value); Sebagai contoh:

int x (0);

Akhirnya, metode ketiga, yang dikenal sebagai inisialisasi seragam, mirip dengan di atas, tetapi menggunakan kurung kurawal ({}) bukan tanda kurung (ini diperkenalkan oleh revisi C + + standar, pada tahun 2011):

Jenis identifier {} initial_value; Sebagai contoh:

int x {0};

Semua tiga cara menginisialisasi variabel adalah valid dan setara di C + +.

/ / Inisialisasi variabel

# include

menggunakan namespace std;

(21)

int a = 5; / / Nilai awal: 5 int b (3); / / Nilai awal: 3 int c {2}; / / Nilai awal: 2

int hasil; / / Nilai awal belum ditentukan

a = a + b; Hasil = a - c; cout << hasil;

return 0; }

6

Edit & Run

Jenis pemotongan: auto dan decltype

Ketika variabel baru diinisialisasi, compiler dapat mengetahui apa jenis variabel secara otomatis oleh initializer tersebut. Untuk ini, cukup dengan menggunakan auto sebagai jenis specifier untuk

variabel:

int foo = 0;

auto bar = foo; / / Sama dengan: int bar = foo;

Di sini, bar dinyatakan sebagai memiliki jenis auto; Oleh karena itu, jenis bar adalah jenis nilai yang digunakan untuk menginisialisasi itu: dalam hal ini menggunakan jenis foo, yaitu int.

Variabel yang tidak diinisialisasi juga dapat menggunakan jenis pemotongan dengan specifier decltype:

(22)

decltype (foo) bar; / / Sama dengan: int bar;

Di sini, bar dinyatakan sebagai memiliki tipe yang sama seperti foo.

mobil dan decltype adalah fitur canggih baru-baru ini ditambahkan ke bahasa. Tetapi fitur jenis pemotongan mereka memperkenalkan dimaksudkan untuk digunakan baik ketika jenis tidak dapat diperoleh dengan cara lain atau ketika menggunakannya meningkatkan pembacaan kode. Dua contoh di atas kemungkinan besar tak satu pun dari kasus penggunaan tersebut. Bahkan mereka mungkin menurun mudah dibaca, karena, ketika membaca kode, kita harus mencari jenis foo untuk benar-benar mengetahui jenis bar.

Pengantar string

Jenis Fundamental merupakan jenis yang paling dasar ditangani oleh mesin di mana kode dapat berjalan. Tapi salah satu kekuatan utama dari C + + bahasa adalah seperangkat kaya jenis senyawa, dimana jenis mendasar adalah blok bangunan belaka.

Contoh dari jenis senyawa adalah kelas string. Variabel jenis ini mampu menyimpan rangkaian karakter, seperti kata-kata atau kalimat. Sebuah fitur yang sangat berguna!

Perbedaan pertama dengan tipe data mendasar adalah bahwa untuk menyatakan dan menggunakan benda-benda (variabel) jenis ini, program ini perlu menyertakan header di mana jenis didefinisikan dalam perpustakaan standar (header <string>):

/ / String pertama saya # include

# include <string>

menggunakan namespace std;

(23)

String mystring;

mystring = "Ini adalah string"; cout << mystring;

return 0; }

Ini adalah string Edit & Run

Seperti yang Anda lihat pada contoh sebelumnya, string dapat diinisialisasi dengan string literal yang valid, seperti tipe numerik variabel dapat diinisialisasi untuk setiap berlaku numerik literal. Seperti jenis fundamental, semua format inisialisasi berlaku dengan string:

String mystring = "Ini adalah string"; String mystring ("Ini adalah string"); String mystring {"Ini adalah string"};

String juga dapat melakukan semua operasi dasar lainnya yang jenis data fundamental bisa, seperti yang dinyatakan tanpa nilai awal dan rubah nilainya selama eksekusi:

/ / String pertama saya # include

# include <string>

menggunakan namespace std;

int main () {

(24)

mystring = "ini adalah awal string yang konten"; cout << mystring << endl;

mystring = "Ini adalah string isi berbeda"; cout << mystring << endl;

return 0; }

Ini adalah konten string awal

Ini adalah konten string yang berbeda Edit & Run

Catatan: memasukkan manipulator endl berakhir garis (mencetak karakter baris baru dan pembilasan sungai).

Kelas string adalah jenis senyawa. Seperti yang Anda lihat dalam contoh di atas, jenis senyawa yang digunakan dalam cara yang sama seperti tipe dasar: sintaks yang sama digunakan untuk

mendeklarasikan variabel dan menginisialisasi mereka.

Untuk detail lebih lanjut tentang standar C + + string, lihat referensi kelas string.

konstanta operator

Basic Input / Output

struktur Program pengendalian Struktur fungsi

(25)

Tipe data Compound array

urutan karakter pointer

Memori dinamis struktur data Tipe data lain

kelas-kelas Kelas (I) Kelas (II) khusus anggota

Persahabatan dan warisan polimorfisme

Fitur bahasa lain jenis konversi pengecualian arahan preprocessor

Referensi

Dokumen terkait

Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, sehingga penulis dapat menyelesaikan skripsi ini dengan judul “ Pengaruh Lingkungan Kerja Non Fisik,

Perbedaan Perilaku Prososial dan Self Awareness Terhadap Nilai Budaya Lokal Jawa Ditinjau dari Jenis Kelamin pada Siswa SMA Kyai Ageng Basyariyah Kecamatan

Berita Resmi Statistik Kota Sibolga No. Berdasarkan hasil pemantauan BPS, pada bulan ini, Kota Sibolga mengalami inflasi sebesar 1,82 persen.  Inflasi terjadi karena

Penambahan sari lengkuas yang berbeda konsentrasi, lama penyimpanan dan interaksi tidak memberikan pengaruh yang nyata terhadap kadar garam kuning telur asin.. Hasil

rumusan kebijakan pengembangan mekanisasi pertanian secara nasional; dan 5) untuk mengembangkan kapasitas sumberdaya penelitian, perekayasaan dan pengembangan

Surat Pemberitahuan Retribusi Daerah yang selanjutnya dapat disingkat SPTRD adalah surat yang digunakan oleh Wajib Retribusi untuk melaporkan objek retribusi dan wajib

Dari hasil pembahasan, dapat disimpulkan bahwa kawasan Resapan Air eksisting yang ada di kota Manado tersebar di 10 kecamatan yang ada di kota Manado yaitu :

Berdasarkan penelitian yang dilakukan dengan membandingkan perkembangan arsitektur yang terjadi pada bangunan di daerah Pasar Pusat Pekanbaru terlihat beberapa