C Programlama Sabitler ve Değişkenler, programın yürütülmesi sırasında değiştiremeyeceği sabit değerleri ifade eder. Bu sabit değerlere değişmez değerler de denir.
Sabitler, integer constant, floating constant, character constant, ya da string literal gibi temel veri türlerinden herhangi biri olabilir. Ayrıca numaralandırma sabitleri de vardır.

Sabitler, tanımlarından sonra değerlerinin değiştirilememesi dışında normal değişkenler gibi ele alınır.
C Programlama Sabitler ve Değişkenler: Tamsayı Değişmezleri / Integer Literals
Bir tamsayı değişmezi ondalık, sekizlik veya onaltılık bir sabit olabilir. Bir önek, taban veya sayı tabanını belirtir: onaltılık için 0x veya 0X, sekizlik için 0 ve ondalık için hiçbir şey.
Bir tamsayı değişmezi, sırasıyla işaretsiz ve uzun için U ve L’nin birleşimi olan bir son eke de sahip olabilir. Son ek büyük veya küçük harf olabilir ve herhangi bir sırada olabilir.
İşte tamsayı değişmezlerinin bazı örnekleri:
Aşağıda, çeşitli tamsayı değişmezlerinin diğer örnekleri verilmiştir:
C Programlama Sabitler ve Değişkenler: Floating-point Değişmezleri
Bir floating-point değişmezinin bir tamsayı kısmı, bir ondalık noktası, bir kesir kısmı ve bir üs kısmı vardır. Floating-point ya ondalık biçimde ya da üstel biçimde temsil edebilirsiniz.
Ondalık biçimi temsil ederken, ondalık noktayı, üssü veya her ikisini de eklemelisiniz; ve üstel formu temsil ederken, tamsayı kısmı, kesirli kısım veya her ikisini de dahil etmelisiniz. İmzalı üs e veya E ile tanıtılır.
İşte floating-point değişmezlerin bazı örnekleri:
Karakter Sabitleri
Karakter değişmezleri tek tırnak içine alınır, örneğin ‘x’, char türündeki basit bir değişkende saklanabilir .
Bir karakter değişmezi, düz bir karakter (örneğin, ‘x’), bir kaçış dizisi (örneğin, ‘ ’) veya bir evrensel karakter (örneğin, ‘\u02C0’) olabilir.
C’de, önüne ters eğik çizgi geldiğinde özel anlamı temsil eden belirli karakterler vardır, örneğin yeni satır (
) veya sekme ( ).
| Kaçış dizisi | Anlam |
|---|---|
| \ | \ karakter |
| \’ | ‘ karakter |
| \” | “karakter |
| \? | ? karakter |
| \a | Uyarı veya zil |
| \B | geri al |
| \F | Form besleme |
| Yeni satır | |
| Satırbaşı | |
| \T | Yatay sekme |
| \v | Dikey sekme |
| \oooo | Bir ila üç basamaklı sekizli sayı |
| \xhh . . . | Bir veya daha fazla basamaktan oluşan onaltılık sayı |
Birkaç kaçış dizisi karakterini gösteren örnek aşağıdadır:
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu üretir:
Merhaba DunyaDize/String Değişmezleri
Dize değişmezleri veya sabitleri çift tırnak “” içine alınır. Bir dize, karakter değişmezlerine benzer karakterler içerir: düz karakterler, kaçış dizileri ve evrensel karakterler.
Uzun bir satırı, dize değişmezlerini kullanarak ve beyaz boşluklar kullanarak ayırarak birden çok satıra bölebilirsiniz.
İşte bazı dize değişmezleri örnekleri. Her üç form da aynı dizelerdir:
"devre, yakan"
"devre,yakan"
"devre, " "y" "akan"Sabitleri Tanımlama
C’de sabitleri tanımlamanın iki basit yolu vardır –
- #define önişlemcisini kullanma.
- const anahtar sözcüğünü kullanma.
#define Önişlemcisi
Aşağıda verilen, bir sabiti tanımlamak için #define önişlemcisini kullanma biçimidir:
#define identifier valueAşağıdaki örnek bunu ayrıntılı olarak açıklamaktadır:
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu üretir:
Alan : 50const Anahtar Kelimesi
const degısken = deger;Aşağıdaki örnek bunu ayrıntılı olarak açıklamaktadır:
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu üretir:
Alan : 50Sabitleri büyük harfler ile tanımlamak her zaman daha kolay anlaşılır olmasına sebep olur. Bir sonraki yazımızda Depolama Sınıfları konusu inceleyeceğiz.
#define ve const Arasındaki Fark
Her ikisi de C’de sabitleri tanımlamak için kullanılsa da, #define ve const arasında önemli farklar vardır:
- Tür Güvenliği (Type Safety):
constile tanımlanan sabitler belirli bir veri türüne sahiptir (örn.const int PI = 3;). Bu, derleyicinin tür kontrolü yapmasına olanak tanır.#defineise sadece bir metin değiştirme işlemidir ve tür bilgisi taşımaz. - Kapsam (Scope):
constdeğişkenleri, normal değişkenler gibi blok kapsamında (scope) olabilirler (tanımlandıkları bloğa özel).#defineile tanımlanan sabitler ise tanımlandıkları yerden dosya sonuna kadar her yerde geçerlidir. - Derleme Süreci:
#definebir önişlemci (preprocessor) komutudur. Derleme başlamadan önce koddaki tüm ilgili ifadeler değerleriyle değiştirilir.constise normal bir değişken gibi derleme zamanında işlenir.
Genel olarak, tür güvenliği ve daha belirgin kapsam kuralları nedeniyle const kullanmak, #define kullanmaya göre daha modern ve güvenli bir yaklaşım olarak kabul edilir. Daha fazla ayrıntı için bu makaleyi okuyabilirsiniz.
Diğer C Programlama içeriklerine buradan erişebilirsiniz.
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.

