# C++ Değişmezler

C++ Değişmezler (Literals) konusunu işliyoruz.

C++ programlama dilinde temel veri türlerinin değiştirilemez sabitleri vardır. Bu sabitler literal olarak isimlendirilir. Sabitler Integer , Float, Char, String ve Boolean veri türlerinden oluşabilir. Bu sabitlerin yazım kuralı dışında kullanımları değişkenler gibidir.

1. Tam Sayı Değişmezleri (Integer Literals)

Tam sayı türünün, ifadelerde doğrudan kullanılmasına izin verir. Bir tamsayı değişmezi, ondalık (decimal), sekizlik(octal) , onaltılık(hexadecimal ) veya ikilik (binary) bir sabit olabilir. Daha fazla bilgi için Cppreferences integer literal bakabilirsiniz.

  • Onluk değişmez (decimal literal) : Başıdan sıfır (0) olmayan onluk basamak değerlerine sahip bir sayıyı ifade eder.

  • Sekizlik değişmez (octal literal) : Başındaki sıfırı takip eden sıfır yada daha fazla basamağı ifade eder. (Basamak rakamları 0,1,2,3,4,5,6,7 olabilir)

  • Onaltılık değişmez (hex literal) : 0x yada 0X ile başlayan ve içirisinde 0,1,2,3,4,5,6,7,8,9,a,A,b,B,c,C,d,D,e,E,f,F rakamlarını içeren onaltılık sayıları ifade eder.

  • İkilik değişmez (binary literal) : 0b yada 0B ile başlayan ve içinde sadece 0,1 rakamlarını içeren sayıları ifade eder.

int d = 42;
int o = 052;
int x = 0x2a;
int X = 0X2A;
int b = 0b101010; // C++14

1.1 Değişmezler için İzin Verilen Kelimeler

suffix

decimal bases

binary, octal, or hexadecimal bases

no suffix

intlong int long long int(since C++11)

intunsigned int long int unsigned long int long long int(since C++11) unsigned long long int(since C++11)

u or U

unsigned intunsigned long int unsigned long long int(since C++11)

unsigned intunsigned long int unsigned long long int(since C++11)

l or L

long intunsigned long int(until C++11) long long int(since C++11)

long intunsigned long int long long int(since C++11) unsigned long long int(since C++11)

both l/L and u/U

unsigned long intunsigned long long int(since C++11)

unsigned long int(since C++11)unsigned long long int(since C++11)

ll or LL

long long int(since C++11)

long long int(since C++11)unsigned long long int(since C++11)

both ll/LL and u/U

unsigned long long int(since C++11)

unsigned long long int(since C++11)

Yukarıdaki tablo cppreference.com adresinden alınmıştır.

Yukarıdaki tabloya göre aşağıdaki şekilde tanımlamalar yapılabilir.

int a= 212;       
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">int  b = </span></span></span>215u;     
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span> <span class="kw4">int c = </span></span></span>0xFeeL;
85         // decimal
0213       // octal
0x4b       // hexadecimal
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

2. Ondalıklı Sayı Değişmezler (Floating Point Literals)

Kayan nokta değişmez değeri, kaynak dosyada değeri belirtilen bir derleme zamanı sabiti tanımlar. Daha fazla bilgi için https://en.cppreference.com/w/cpp/language/floating_literal

Ondalık formunu kullanarak temsil ederken, ondalık noktayı, üssü veya her ikisini de içermeli ve üstel form kullanarak temsil ederken, tamsayı kısmını, kesirli parçayı veya her ikisini de içermelidir. İmzalı üs, e veya E tarafından tanıtılmaktadır.

3.14159     
314159E-5L
#include <iostream>
int main()
{
  std::cout << 58.         << '\n'
            << 4e2         << '\n'
            << 123.456e-67 << '\n'
            << .1E4f       << '\n'
            << 0x10.1p0    << '\n';
}

3. Boolean Değişmezler (Boolean Literals)

Boolean değişmezleri true ve false anahtar kelimelerdir.

bool askerlik =false;

4. Karakter Değişmezleri (Character Literals)

Karakter değişmezleri tek tırnak içine alınır. Eğer literal L ile başlarsa (sadece büyük harf), geniş bir karakter literaldir (örn., L’e ‘) ve wchar_t değişken tipinde saklanmalıdır. Aksi halde, dar bir karakter değişmezidir (örneğin, ‘e’) ve basit bir char tipi değişkeni içinde saklanabilir.

Bir karakter değişmezi, düz bir karakter olabileceği gibi bir kaçış karakteri yada evrensel bir karakter olabilir.

'x'       //normal bir karakter
'\t'      //kaçış karakteri
'\u02C0'  //evrensel bir karakter

Tüm kaçış karakteri listesi aşağıda verilmiştir.

Escape sequence

Meaning

\\

\ (slash) karakteri

\’

‘ tırnak karakteri

\”

” çift tırnak karakteri

\?

? soru işareti karakteri

\a

Uyarı yada Alarm

\b

Backspace

\f

Sayfa başı

\n

Yeni satır

\r

Satır başı

\t

Yatay tab

\v

Dikey tab

#include <iostream>
using namespace std;
 
int main() {
   cout << "Merhaba\tDunya\n\n";
   return 0;
}

5. String Literals

Dize değişmezleri çift tırnak içine alınır. Bir dize, karakter değişmezlerine benzer karakterler içerir: düz karakterler, çıkış sıraları ve evrensel karakterler. Ayrıca L, u8, U, u öneklerini alabilir. Öneklerin kullanımı ile ilgili detay için tıklayın.

Null değer atamak istenirse ‘\0’ ataması yapılmalıdır.

Last updated