Bu derste sadece C programlamada değil çoğu programlama dillerinde kullanılan değişken tiplerini göreceğiz. Değişken ve karakter dizisi mantığını anladığınızda artık yola çıkmaya hazırsınız demektir.
Kursa 27.99 TL'ye kayıt olmak için TIKLAYINIZ.
Değişkenler RAM'de yani hafızada tutmak istediğimiz verilerin tutulduğu yerdir. Bu sayede biz sayısal işlem yaparken tam sayı, kesirli sayı gibi sayıları hafızada tutabiliyoruz. Bazı durumlarda çok büyük bir sayı ile işlem yapmak durumunda kalabiliyoruz. Bunun için double diye bir veri tipi ortaya çıkmıştır ve böylece int ve float'a göre çok daha büyük sayıları double sayesinde hafızada tutabilir hale geldik. Tabii ki dünyadaki veri tipleri sadece sayılardan ibaret değil. Günlük hayatımızda sıkça kullandığımız cümleler, kelimeler ve harflerin de bir oluşum şekli var. İşte bir her bir harfe karakter diyoruz. C programlamada da 1 harfi oluşturmak oldukça kolayken bazen bir sürü harfin yan yana gelmesiyle olan ifadeleri oluştururken özellikle C programlamaya başlarken aklınız karışabiliyor ama hiç karışmasın çünkü bunu anlamak oldukça kolay.
Kısaca RAM nedir diye anlatacak olursam;
Nasıl ki insanda beyin var ve bazen beynimizde geçici bilgileri tuttuktan sonra onları hatırlamıyoruz. İşte RAM'i de böyle düşünebilirsiniz. RAM bir C programı çalıştıktan sonra hafızasında sizin belirtmiş olduğunuz değişkenler ve karakter dizileri için kendinde belli bir yer ayırır ve sizin bu verileri program açık kaldığı sürece kullanmanızı sağlar.
Önce RAM'de hafızada 1 karakter tutalım;
char karakter = 'K' ; // 1byte yer kaplar
char isim[5] = "Kaan"; //5 byte yer kaplar
Gördüğünüz gibi 1 karakter için 1 byte yer direkt "char" anahtar kelimesini kullandığımızda RAM tarafından 1 byte yer ayrılıyor.
Fakat 4 karakter için neden 4 byte değil de 5 byte yer ayırmak durumundayız?
Çünkü C programı esnasında derleyicinin bu veriyi okuma şekli RAM'de göz gözdür. Mesela "Kaan" karakter dizisi RAM'de
K A A N \0 şeklinde tutulur.
K |
A |
A |
N |
\0 |
Böyle tutulduğu için eğer ki biz bu karakter dizisini %s ile konsola yazdırmak istediğimiz aslında derleyici arka planda bu harflerin hepsini \0 karakterini görene kadar ekrana yazar. Bu sebeple Her karakter dizisinin sonunda o karakter dizisinin bittiği anlaşılsın diye \0 karakteri otomatik olarak eklenir. Bir karakter dizisini sorunsuzca oluşturmak için yapmamız gereken tek şey o karakter dizisine yazdırmak istediğimiz ifadenin 1 fazlası kadar RAM'de yer ayırmamız. Örneğin biz "Academy" kelimesini karakter dizisi olarak tutmak istiyoruz;
"Academy" karakter dizisi 7 karakterden oluştuğu için bir de sonuna otomatik olarak \0 karakteri de eklensin diye RAM'de 8 byte yer ayırıyoruz. Karakter dizisi mantığı bundan ibaret.
char karakterDizisi[8] = "Academy";
AÇIKLAMA
Aşağıdaki C programlama kodu örneğinde tam sayı,kesirli sayı, karakter ve karakter dizisi örnekleri verilmiştir. Ve bunları C programlama kullanarak nasıl konsolda görüntüleyebileceğiniz anlatılmıştır.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
/* burası yorum satırıdır buraya yazdiginiz ifadeler derleyici tarafindan okunmaz */
// Program ilk başladığında main fonksiyonu çalışır. /* Tek satır yorum yazacaksanız // işaretini kullanabilirsiniz. */
int main()
{
setlocale(LC_ALL,"Turkish");
int tamSayi = 6; /* RAM'de 4 byte yer kaplar */
float kesirliSayi = 9.2; /* RAM'de 4 byte yer kaplar */
double buyukYerKaplayanKesirliSayi = 7.2; /* RAM'de 8 byte yer kaplar */
char karakter = 'K' ; /* RAM'de 1 byte yer kaplar */
char karakterDizisiOrnegi1[14] = "Kaan Academy"; /* RAM'de 14 byte yer ayrılır fakat 13 byte yer kaplar */
char karakterDizisiOrnegi2[13] = {'K','a','a','n',' ','A','c','a','d','e','m','y'};/* RAM'de 13 byte yer ayrılır ve 13 byte yer kaplar */
printf("%d integer yani bir tam sayi RAM'de %d byte yer kaplar\n",tamSayi,sizeof(int));
printf("%f float yani bir kesirli sayi RAM'de %d byte yer kaplar\n",kesirliSayi,sizeof(float));
/* .1f yazmamızın sebebi virgülden sonra sadece 1 basamak göstermek */
printf("%.1f float yani bir kesirli sayi RAM'de %d byte yer kaplar\n",kesirliSayi,sizeof(float));
printf("%lf double yani buyuk yer kaplayan kesirli sayilar RAM'de %d byte yer kaplar\n",buyukYerKaplayanKesirliSayi,sizeof(double));
/* .1f yazmamızın sebebi virgülden sonra sadece 1 basamak göstermek */
printf("%.1lf double yani buyuk yer kaplayan kesirli sayilar RAM'de %d byte yer kaplar\n",buyukYerKaplayanKesirliSayi);
printf("%c char yani karakterlerin her biri RAM'de %d byte yer kaplar\n",karakter,sizeof(char));
/* Karakterlerden oluşan topluluklara biz karakter dizisi diyoruz. */
/* Karakter dizilerinin kaç tane karakter olduğunu ilerleyen derslerimizde göreceğiz. */
printf("%s\n",karakterDizisiOrnegi1);
printf("%s\n",karakterDizisiOrnegi2);
return 0;
}
Veri Tipleri | Tanımlama |
Konsolda bastırmak için kullanılan işaret |
int integer (tam sayı) | int tamSayi = 6; | %d |
float kesirli sayı |
float kesirliSayi = 9.2; | %f |
double |
double buyukKesirliSayi = 7.2; |
%lf |
char | char karakter = 'K' ; | %c |
char array karakter dizisi | char karakterDizisiOrnegi[14] = "Kaan Academy"; | %s |
Bir kaç değişken tipi daha var fakat bunlar bizim için fazlasıyla yeterlidir.