Literal adalah jenis yang paling jelas dari konstanta. Mereka digunakan untuk menyatakan nilai-nilai tertentu dalam kode sumber program. Kita telah digunakan sebelumnya ini untuk memberikan nilai konkrit untuk variabel atau untuk mengekspresikan pesan kami ingin program kami untuk mencetak, misalnya, ketika kita menulis:
5 dalam potongan kode ini adalah konstanta literal.
Literal konstanta dapat dibagi dalam angka Integer, Floating-Point angka, Karakter, String dan Boolean Nilai.
Mereka adalah konstanta numerik yang mengidentifikasi nilai desimal integer. Perhatikan bahwa untuk mengekspresikan numerik konstan kita tidak harus menulis tanda kutip (") maupun karakter khusus Tidak ada keraguan bahwa itu adalah konstan:. setiap kali kita menulis 1776 dalam sebuah program, kita akan mengacu ke nilai 1776.
Selain angka desimal (orang-orang bahwa kita semua digunakan untuk menggunakan setiap hari), C + + memungkinkan penggunaan angka oktal (basis 8) dan angka heksadesimal (basis 16) sebagai konstanta literal. Jika kita ingin mengekspresikan nomor oktal kita harus mendahului dengan 0 (karakter nol). Dan untuk mengekspresikan angka heksadesimal kita harus mendahului itu dengan karakter 0x (nol, x). Sebagai contoh, konstanta literal berikut adalah semua setara dengan satu sama lain:
Semua ini merupakan nomor yang sama: 75 (tujuh puluh lima) dinyatakan sebagai angka-10 base, angka angka oktal dan heksadesimal, masing-masing.
Konstanta Literal, seperti variabel, yang dianggap memiliki jenis data tertentu. Secara default, literal integer adalah tipe int. Namun, kami bisa memaksa mereka untuk baik akan unsigned dengan menambahkan karakter u untuk itu, atau panjang dengan menambahkan l:
Dalam kedua kasus, akhiran dapat ditentukan baik menggunakan huruf besar atau huruf kecil.
Ini adalah empat nomor yang valid dengan desimal disajikan dalam C + +. Nomor pertama adalah PI, yang kedua adalah jumlah Avogadro, yang ketiga adalah muatan listrik dari sebuah elektron (jumlah yang sangat kecil)-semuanya mendekati-dan yang terakhir adalah nomor tiga dinyatakan sebagai floating-point numerik literal.
Jenis default untuk literal floating point adalah double. Jika Anda secara eksplisit ingin mengekspresikan float atau long double numerik literal, Anda dapat menggunakan f atau akhiran l:
Setiap huruf yang dapat menjadi bagian dari numerik konstanta floating-point (,l, e, f) dapat ditulis menggunakan huruf baik lebih rendah atau huruf besar tanpa perbedaan arti mereka.
Karakter dan string literal
Ada juga konstanta non-numerik, seperti:
Dua yang pertama merupakan ekspresi konstanta karakter tunggal, dan dua berikut ini mewakili string literal terdiri dari beberapa karakter. Perhatikan bahwa untuk mewakili satu karakter kami lampirkan di antara tanda kutip tunggal (') dan untuk mengekspresikan string (yang umumnya terdiri dari lebih dari satu karakter) kami lampirkan di antara tanda kutip ganda (").
Saat menulis literal baik karakter tunggal dan string, perlu untuk menempatkan tanda kutip sekitar mereka untuk membedakan mereka dari identifier variabel yang mungkin atau kata kunci reserved. Perhatikan perbedaan antara dua ekspresi:
x saja akan merujuk ke variabel yang identifier adalah x, sedangkan 'x' (yang dimasukkan dalam tanda kutip tunggal) akan mengacu pada konstanta karakter 'x'.
Karakter dan literal string memiliki kekhasan tertentu, seperti kode melarikan diri. Ini adalah karakter khusus yang sulit atau tidak mungkin untuk mengekspresikan dinyatakan dalam kode sumber dari program, seperti newline (\ n) atau tab (\ t). Semuanya didahului dengan backslash (\). Di sini Anda memiliki daftar beberapa kode melarikan diri seperti:
Selain itu, Anda dapat mengekspresikan setiap karakter ASCII dengan kode numerik dengan menulis karakter backslash (\) diikuti dengan kode ASCII dinyatakan sebagai oktal (basis-8) atau heksadesimal (basis-16) nomor. Dalam kasus pertama (oktal) digit harus segera mengikuti backslash (misalnya \ 23 atau \ 40), dalam kasus kedua (heksadesimal), karakter x harus ditulis sebelum digit sendiri (misalnya \ x20 atau \ x4A ).
String literal dapat memperpanjang untuk lebih dari satu baris kode dengan menempatkan tanda backslash (\) pada akhir setiap baris yang belum selesai.
Anda juga dapat menggabungkan beberapa string konstanta memisahkan mereka dengan satu atau beberapa ruang kosong, tabulasi, newline atau karakter kosong lain yang valid:
Akhirnya, jika kita ingin string literal untuk secara eksplisit terbuat dari karakter lebar (wchar_t type), , bukan karakter yang sempit (char type), kita dapat mendahului konstanta dengan L awalan:
Karakter Wide digunakan terutama untuk mewakili set karakter non-Inggris atau eksotis.
Anda dapat menentukan nama Anda sendiri untuk konstanta yang anda gunakan sangat sering tanpa harus resor untuk variabel memakan memori, hanya dengan menggunakan direktif preprocessor # define. Formatnya adalah:
For example:
Hal ini mendefinisikan dua konstanta baru: PI dan NEWLINE. Setelah mereka ditetapkan, Anda dapat menggunakannya di seluruh kode seolah-olah mereka yang lain biasa konstan, misalnya:
Run:
Bahkan satu-satunya yang preprocessor kompiler tidak ketika bertemu # define arahan adalah harfiah mengganti terjadinya mereka identifier (pada contoh sebelumnya, ini adalah PI dan NEWLINE) dengan kode yang mereka telah didefinisikan (3,14159 dan '\ n 'masing-masing).
The # define direktif bukan C + + pernyataan tetapi arahan untuk preprocessor, karena itu mengasumsikan seluruh baris sebagai patokan dan tidak membutuhkan tanda titik koma (;) di ujungnya. Jika anda menambah sebuah karakter titik koma (;) di akhir, itu juga akan ditambahkan dalam semua kejadian dari identifier dalam tubuh program yang preprocessor menggantikan.
Dengan prefix const Anda dapat mendeklarasikan konstanta dengan tipe tertentu dengan cara yang sama seperti yang Anda akan lakukan dengan variabel:
Di sini, pathwidth dan tabulasi adalah dua konstanta diketik. Mereka diperlakukan sama seperti variabel biasa kecuali bahwa nilai tidak dapat diubah setelah definisi mereka.
Source Of cplusplus.com
|
5 dalam potongan kode ini adalah konstanta literal.
Literal konstanta dapat dibagi dalam angka Integer, Floating-Point angka, Karakter, String dan Boolean Nilai.
Integer Numerals
1 2 3 |
|
Mereka adalah konstanta numerik yang mengidentifikasi nilai desimal integer. Perhatikan bahwa untuk mengekspresikan numerik konstan kita tidak harus menulis tanda kutip (") maupun karakter khusus Tidak ada keraguan bahwa itu adalah konstan:. setiap kali kita menulis 1776 dalam sebuah program, kita akan mengacu ke nilai 1776.
Selain angka desimal (orang-orang bahwa kita semua digunakan untuk menggunakan setiap hari), C + + memungkinkan penggunaan angka oktal (basis 8) dan angka heksadesimal (basis 16) sebagai konstanta literal. Jika kita ingin mengekspresikan nomor oktal kita harus mendahului dengan 0 (karakter nol). Dan untuk mengekspresikan angka heksadesimal kita harus mendahului itu dengan karakter 0x (nol, x). Sebagai contoh, konstanta literal berikut adalah semua setara dengan satu sama lain:
1 2 3 |
|
Semua ini merupakan nomor yang sama: 75 (tujuh puluh lima) dinyatakan sebagai angka-10 base, angka angka oktal dan heksadesimal, masing-masing.
Konstanta Literal, seperti variabel, yang dianggap memiliki jenis data tertentu. Secara default, literal integer adalah tipe int. Namun, kami bisa memaksa mereka untuk baik akan unsigned dengan menambahkan karakter u untuk itu, atau panjang dengan menambahkan l:
|
Dalam kedua kasus, akhiran dapat ditentukan baik menggunakan huruf besar atau huruf kecil.
Floating Point NumbersMereka mengekspresikan angka dengan desimal dan / atau eksponen. Mereka dapat mencakup baik titik desimal, karakter e (yang mengekspresikan "oleh sepuluh pada ketinggian Xth", dimana X adalah nilai integer yang mengikuti karakter e), atau keduanya titik desimal dan karakter e:
1 2 3 4 |
|
Ini adalah empat nomor yang valid dengan desimal disajikan dalam C + +. Nomor pertama adalah PI, yang kedua adalah jumlah Avogadro, yang ketiga adalah muatan listrik dari sebuah elektron (jumlah yang sangat kecil)-semuanya mendekati-dan yang terakhir adalah nomor tiga dinyatakan sebagai floating-point numerik literal.
Jenis default untuk literal floating point adalah double. Jika Anda secara eksplisit ingin mengekspresikan float atau long double numerik literal, Anda dapat menggunakan f atau akhiran l:
1 2 |
|
Setiap huruf yang dapat menjadi bagian dari numerik konstanta floating-point (,l, e, f) dapat ditulis menggunakan huruf baik lebih rendah atau huruf besar tanpa perbedaan arti mereka.
Karakter dan string literal
Character and string literals
Ada juga konstanta non-numerik, seperti:
1 2 3 4 | 'z' 'p' "Hello world" "How do you do?" |
Dua yang pertama merupakan ekspresi konstanta karakter tunggal, dan dua berikut ini mewakili string literal terdiri dari beberapa karakter. Perhatikan bahwa untuk mewakili satu karakter kami lampirkan di antara tanda kutip tunggal (') dan untuk mengekspresikan string (yang umumnya terdiri dari lebih dari satu karakter) kami lampirkan di antara tanda kutip ganda (").
Saat menulis literal baik karakter tunggal dan string, perlu untuk menempatkan tanda kutip sekitar mereka untuk membedakan mereka dari identifier variabel yang mungkin atau kata kunci reserved. Perhatikan perbedaan antara dua ekspresi:
1 2 |
'x' |
x saja akan merujuk ke variabel yang identifier adalah x, sedangkan 'x' (yang dimasukkan dalam tanda kutip tunggal) akan mengacu pada konstanta karakter 'x'.
Karakter dan literal string memiliki kekhasan tertentu, seperti kode melarikan diri. Ini adalah karakter khusus yang sulit atau tidak mungkin untuk mengekspresikan dinyatakan dalam kode sumber dari program, seperti newline (\ n) atau tab (\ t). Semuanya didahului dengan backslash (\). Di sini Anda memiliki daftar beberapa kode melarikan diri seperti:
\n | newline |
\r | carriage return |
\t | tab |
\v | vertical tab |
\b | backspace |
\f | form feed (page feed) |
\a | alert (beep) |
\' | single quote (') |
\" | double quote (") |
\? | question mark (?) |
\\ | backslash (\) |
Contoh:
1 2 3 4 | '\n' '\t' "Left \t Right" "one\ntwo\nthree" |
Selain itu, Anda dapat mengekspresikan setiap karakter ASCII dengan kode numerik dengan menulis karakter backslash (\) diikuti dengan kode ASCII dinyatakan sebagai oktal (basis-8) atau heksadesimal (basis-16) nomor. Dalam kasus pertama (oktal) digit harus segera mengikuti backslash (misalnya \ 23 atau \ 40), dalam kasus kedua (heksadesimal), karakter x harus ditulis sebelum digit sendiri (misalnya \ x20 atau \ x4A ).
String literal dapat memperpanjang untuk lebih dari satu baris kode dengan menempatkan tanda backslash (\) pada akhir setiap baris yang belum selesai.
1 2 | "string expressed in \ two lines" |
Anda juga dapat menggabungkan beberapa string konstanta memisahkan mereka dengan satu atau beberapa ruang kosong, tabulasi, newline atau karakter kosong lain yang valid:
"this forms" |
Akhirnya, jika kita ingin string literal untuk secara eksplisit terbuat dari karakter lebar (wchar_t type), , bukan karakter yang sempit (char type), kita dapat mendahului konstanta dengan L awalan:
|
Karakter Wide digunakan terutama untuk mewakili set karakter non-Inggris atau eksotis.
Boolean literalHanya ada dua nilai Boolean yang valid: true dan false. Ini dapat dinyatakan dalam C + + sebagai nilai bool tipe dengan menggunakan Boolean literal benar dan salah.
Anda dapat menentukan nama Anda sendiri untuk konstanta yang anda gunakan sangat sering tanpa harus resor untuk variabel memakan memori, hanya dengan menggunakan direktif preprocessor # define. Formatnya adalah:
Defined constants (#define)
#define identifier value
For example:
1 2 | #define PI 3.14159 #define NEWLINE '\n' |
Hal ini mendefinisikan dua konstanta baru: PI dan NEWLINE. Setelah mereka ditetapkan, Anda dapat menggunakannya di seluruh kode seolah-olah mereka yang lain biasa konstan, misalnya:
// defined constants: calculate circumference
#include <iostream> using
#define PI 3.14159 #define NEWLINE '\n'
int
|
Run:
31.4159
Bahkan satu-satunya yang preprocessor kompiler tidak ketika bertemu # define arahan adalah harfiah mengganti terjadinya mereka identifier (pada contoh sebelumnya, ini adalah PI dan NEWLINE) dengan kode yang mereka telah didefinisikan (3,14159 dan '\ n 'masing-masing).
The # define direktif bukan C + + pernyataan tetapi arahan untuk preprocessor, karena itu mengasumsikan seluruh baris sebagai patokan dan tidak membutuhkan tanda titik koma (;) di ujungnya. Jika anda menambah sebuah karakter titik koma (;) di akhir, itu juga akan ditambahkan dalam semua kejadian dari identifier dalam tubuh program yang preprocessor menggantikan.
Dideklarasikan konstanta (const)
Dengan prefix const Anda dapat mendeklarasikan konstanta dengan tipe tertentu dengan cara yang sama seperti yang Anda akan lakukan dengan variabel:
1 const int pathwidth = 100;
2 const char tabulator = '\t';
Di sini, pathwidth dan tabulasi adalah dua konstanta diketik. Mereka diperlakukan sama seperti variabel biasa kecuali bahwa nilai tidak dapat diubah setelah definisi mereka.
Source Of cplusplus.com