maltepe escort ataşehir escort

C++ Sabitler Nedir? Kaç Çeşit Sabit Vardır.

CodeMania

Silver Üye
Platin
Ad Soyad
Ö*** G*****
Mesajlar
81
Beğeni
18
Nereden
Çorum
Ticaret
3 (100%)

Literaller Sabitleri: Literaller kodda direkt olarak yazılan ifadelerdir. Sabitlerdir çünkü değerleri değiştirilemez.


Örneğin

Kod:
bool AmIAlive = true; // true bir literaldir ve değeri değiştirilemez.
int yas = 20; // 20 bir int literaldir ve degistirilemez.
char *isim = "Alperen"; // Alperen bir string sabitidir.
char A = 'A' // Char literal
double PI = 3.14159 // 3.14159 bir double literaldir.
double avogadro = 6.02e23;

Sayısal sabitler bazı eklere sahip olabilirler. Bu ekler o sabitin türünü belirler. İsteğe bağlıdırlar. Derleyici genellikle hangi sabiti kullanmak istediğinizi anlayabilir.

Data TypeSuffixMeaning
intu or Uunsigned int
intl or Llong
intul, uL, Ul, UL, lu, lU, Lu, or LUunsigned long
intll or LLlong long
intull, uLL, Ull, ULL, llu, llU, LLu, or LLUunsigned long long
doublef or Ffloat
doublel or Llong double


İkilik, sekizlik ve on altılık sayı sabitleri​

İkilik sayı sabitlerinin başına “0b”, sekizliklerin başına “0” ve on altılıkların başına “0x” koyulur.

Kod:
int y = 0b01011001;
int x = 0765;
int f = 0xFF;

Sembolik sabitler​

Normal değişkenlerin değerleri değiştirilebilirdir. Const değişkenler ise değiştirilemezler. Örneğin pi sayısı, dünyanın çekim ivmesi gibi değerlerin değişmediğini biliriz. Yazdığımız kodda da değişmemesi gerekmektedir. Bunun için değişken tanımının başına “const” ifadesini koyarız.
Const değerlere ilk değer ataması yapmak zorunludur.

Örneğin:

Kod:
const double gravity { 9.8 }; // Dogrudur ve tercih edilir.
double const PI { 3.14 }; // Calisir ama onerilmez.

const int X; //Derleyici hatasi.

Const değişkenlere ilk değer atması olarak başka bir değişkenin değeri atanabilir. Örneğin:

Kod:
std::cout << Yasiniz?;
int yas;
std::cin >> yas;
const int Kullanicininyasi(yas);

Constexpr​

Constexpr değişkenler const değişkenler gibi sabitlerdir ama constexpr değişkenler derleme zamanı çözülmelidirler.
örneğin:

Kod:
constexpr pi(3.14); /* Derleyici derleme sirasinda pi'ye atanacak degeri cözebildi. Sikinti yok */
int x;
std::cin >> x;

constexpr int foo(x) /* Derleme hatasi. Derleme sirasinda atanacak deger bilinmiyor. */


Önişlemci Kullanarak sabit tanımlama​

C de çok kullanılan önişlemci sabitleri C++ da yazarken çok önerilmez. Çünkü dilin mekaniklerine aykırı bir kullanımı vardır ve yer yer ikiliklere sebep olabilir.

Kod:
#define SABIT 100

int x = SABIT;

Tür dönüşümleri​

Bir veri tipinin başka bir veri tipine çevrilmesidir. Bazı tip dönüşümleri veri kaybına sebep olurken bazılarını da yapmak mümkün değildir. C++ üstü kapalı (implicit) birçok dönüşümü otomatik olarak yapabilir. Örneğin, aşağıda int bir veri long bir veriye dönüştürülmüş.

Kod:
int myInt{12};
long myLong;
myLong = myInt;

Bu durumda veri, daha büyük bir veri tipine dönüştürüldüğü için veri kaybı olmadı. Ama aşağıdaki durumlarda böyle bir durum söz konusu.

DönüşümOlası riskler
Büyük kayan noktalı sayıyı, küçük kayan noktalı sayıyaHassaslık kaybı ya da sınırların dışına taşma
Kayan noktalı sayıdan tam sayıyaKesirli kısmın kaybı ya da sınırların dışına taşma
Büyük tam sayıdan küçük tam sayıyaSınırların dışına taşabilir


Açık (explicit) tip dönüşümleri​

C++ da beş farklı tip dönüşümü vardır. C-stili, static, dynamic, const ve reinterperet dönüşümler. Burada C-stili dönüşüm ve statik dönüşümler anlatılacak.

C stili dönüşüm​

Bu dönüşümde parantez operatörü kullanılır. Parantezin içine yazılan tip dönüştürülecek tip olur. Örneğin:

Kod:
int i1 = 10;
int i2 = 4;
float f = (float)i1 / i2;


Aynı zamanda bu şekilde de yapılabilir. (Daha çok fonksiyona benzeyen bir şekilde)

Kod:
int i1 = 10;
int i2 = 4;
float f = float(i1) / i2;

static_cast​


Kod:
char c = 'a';

std::cout << static_cast<int>(c) << std::endl; // a değil 97 yazdırır.
Statik dönüşümün en iyi yanı, derleme zamanı kontrol yapmasıdır. Böylece mantıksız olabilecek işlemlerden kaçınılır.
 

Şu anda bu konu'yu okuyan kullanıcılar

Benzer konular Forum Tarih
CodeMania ASP 0 177
WMH PHP 0 110

Benzer konular

Anasayfa Kayıt Ol Giriş Yap
Üst