# # 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.**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://derslik.kerteriz.net/c++/c++-temel-dersler/c++-sabitler.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
