> For the complete documentation index, see [llms.txt](https://derslik.kerteriz.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://derslik.kerteriz.net/c++/c++-temel-dersler/c++-sabitler.md).

# # C++ Sabitler

Sabitler, programda belirli bir değere sahip değişkenlerdir. Program boyunca bu değeri hafızasında tutacak ve hep kullanacaktır. Bu sebeple yazıldıkları yer bakımından da işlev bakımından da değişkenlerden biraz farklıdırlar.

* Sabitler, normal değişkenler gibidir. Ama bir kez değer atandıktan sonra program tarafından değiştirilemez.
* Sabit değerlerde kullanılır. Bu sayede değiştirilmesine izin verilmez. Örneğin Pi sayısı.
* Sabit değerlerin veri tipleri kısıtlaması yoktur. Her veri tipindeki değerleri sabit olarak tanımlayabilirsiniz.

C++ ile sabit tanımlamanın iki yolu vardır.

* **#define** kullanarak.
* **const** anahtar kelimesini kullanarak.

## 1. define Tanımlayıcı Değer

Programınızın başında sabit değer alacak değişkenleri `define` anahtar kelimesi ile tanımlayarak program içinde daha anlaşılabilir bir şekilde kullanabilirsiniz. Sabit değerde değişiklik yapacağınız zaman `define` ile oluşturduğunuz değeri güncellemeniz yeterli olacaktır.

```cpp
#include <iostream>
using namespace std;
 
#define UZUNLUK 10   
#define GENISLIK 5
 
int main() {
   int alan;  
   alan = UZUNLUK * GENISLIK ;
   cout << alan;
   return 0;
}
```

## 2. const Anahtar Kelimesi

Aşağıdaki gibi belirli bir türdeki sabitleri bildirmek için `const` ön ekini kullanabilirsiniz.

```cpp
#include <iostream>
using namespace std;
 
int main() {
   const int  YUKSEKLIK = 10;
   const int  GENISLIK  = 5;
   int alan;  
   
   area = YUKSEKLIK * GENISLIK;
   cout << alan;
   return 0;
}
```

## 3. **#define ve const Arasındaki Fark**

**`define`** methodu bir önişlemci gibi davranır. Yani herhangi bir derleme işlemine girmez ve kodda yeniden aranır. **`Const`** ise gerçek bir değişken gibi davrandığı için tüm işlemler rahatlıkla gerçekleştirilir. Temelde ikisi de aynı işi yapar ve hatta ikisi de birbirinden neredeyse farksızdır diyebiliriz. Lakin hata derleyicileri bir program için oldukça önemlidir ve **`const`** bir değişken olarak davrandığından dolayı bu alanda size avantaj sağlayacaktır. Bunun dışında basit işlemlerde olmasa bile kompleks yapılı işlemlerde **`define`** methodunda problemlerin yaşandığı söylenmektedir. Bu sebeple **C++ programlama dilinde tercih edilmesi gerekenin const olduğunu yazılımcılar dile getirmektedir.**
