C Değişken Tanımlayıcıları

Değişken Tanımlayıcıları

C çeşitli kelimeleri kullanarak değişkenleri farklı şekilde kullanma olanağı sağlar.Değişkenler bir türe ait verileri saklayan veri deposudur.Aksi belirtilmedikçe içerikleri değiştirilebilir.

Değişkenleri tanımlamak için aşağıdaki notasyon kullanılır.

[Veri Tipi] [Değişken Adı ]
C dilinde Büyük ve küçük harfler farklı verileri temsil eder.
Char c;
Char C;
Değişkenler harflerle yada altçizgisi ( _ ) ile başlar.İçlerinde boşluk yoktur. Değişkenlere değer atamak için = operatörü kullanılır.Değişkenlere değer atama program içinde yapıla bildiği gibi değer tanımlama zamanında da yapılabilir.
İnt c; c=100;
Char d; d='a'
veya
int c=100;
Char d='a';
Aynı anda birden fazla değişken tanımlanabilir, ve aynı anda birden fazla değişkene değer
atanabilir.
İnt i,j,k;
İ=j=k=100;

AUTO değişken tanımlayıcı : C ile B dili arasında uyum sağlamak amacı ile otomatik değişken1 bildiriminde kullanılır.Lokal değişkendir.Otomatik değişkenler ,gerektiğine oluşturulurlar, ve işleri bitince de silinirler. Hatırlamamız gereken bir nokta da , bir fonksiyon birden fazla kere çağrıldığında ,otomatik değişkenlerin eski değerleri saklanmaz, yeni baştan değer atanmaları gerekir.

EXTERN değişken tanımlayıcı : C' de uzun programların derlenmesi için programlar, dosyalar halinde bölünür. Dosyalar sonradan birleştirileceğinden ,bir dosya için geçerli değişkenlerin diğer dosyalar içinde geçerli hale gelmesi için,dosyaların başına diğer dosyaların global değişkenleri yazılır ve başına " . extern" getirilir.

/* den 1.c */ /* den 2.c */
#include "stdio.h" #include "stdio.h"
int d1= 10; extern int d1;
void fonk1(void); void fonk1(void)
main( ) { {
int d2; int d2;
fonk1( ) for(d2=1; d2<=d1;d2++) for (d2=1; d2<=d1; d2++) printf("% -4d",d2*d2); printf("% -4d",d2,d2,d2); printf("\n"); } }


REGISTER değişken tanımlayıcı : Eğer programınızda bir değişkeni çok sık kullanıyorsanız, bu değişkenin başına REGİSTER yazarak programın hızını artırabiliriz .Register sahasına erişim , hafızaya erişimden çok daha hızlıdır,fakat programcının kullanabileceği az sayıda register vardır. Bazı değişkenlerin program tarafından çok kullanılacağını düşünüyorsanız , o değişkeni "register" olarak tanımlayabilirsiniz.Bilgisayar ve derleyici tipinize göre,bir yada birkaç değişkeni bu şekilde tanımlayabilirsiniz.Register değişkenleri, sadece tamsayı ve karakter tipi değişkenleri ile kullanılabilir. Sadece lokal ve
fonksiyon parametrelerinde kullanılır.

#include "stdio.h"
#include "time.h"
main( )
{
int d1,d3; register int d2;
clock d4,d5;
d4=clock();
for (d3=0; d3<10; d3++) for (d1=0; d1<32000; d1++) d5=clock(); printf("İlk döngü süresi : %ld \n", d5-d4); d4=clock(); for (d3=0; d3<10; d3++) for (d2=0; d2<32000; d2++) d5=clock; printf("İkinci döngü süresi : %ld \n",d5-d4); }



STATIC Tanımlayıcısı :Normal olarak, içinde lokal değişken tanımlanan fonksiyonu her çağırdığınızda, önceki değeri silinir.Ancak, bir fonksiyon içinde statik lokal bir değişken tanımladığınızda , fonksiyonu her çağırdığınızda önceki değeri korur. Değişkeni tanımlarken başına "static" sözcüğünü koyarak , o değişken yada değişkenler , fonksiyonun tekrar tekrar çağırılmasında , eski değerlerini tutarlar. Aynı sözcüğü bir global değişkenin başına koyarak ,
o değişkenin sadece o kütük içindeki fonksiyonlara tanımlı olmasını sağlayabiliriz.

#include "stdio.h"
void fonk1(void)
void fonk2(void)
main( )
{
int d1;
for (d1=0; d1<10; d1++) fonk1( ); printf("\n"); for (d1=0; d1<10; d1++) fonk2( ); } void fonk1( void ) { int d1=0; printf("%d",++d1); } void fonk2 (void) { static int d1=0; printf("%d",++d1); } /* den 1.c */ /* den 2.c */ #include "stdio.h" int d1=20; void fonk1(void); void fonk2(void) void fonk2(void); { static int d1=10; for (d1; d1>0; d1--)
main(){ printf("%d",d1);
int d1; }
fonk1();
printf("\n");
fonk2( );
}
void fonk1(void)
{
for (d1; d1<0; d1--) printf("%d",d1); }


Her iki dosyada da d1 adlı birer global değişken tanımlanmıştır,fakat den 1.c dosyasındaki d1değişkeni scatic olarak tanımlandığından, den 2.c dosyasındaki d1 değişkeni ile karışmaz.

CONST ve VOLATİLE Değişken Tanımlayıcı : Eğer değişken bildiriminin başına const ifadesini getirirseniz, program değişkeninin değerini hiçbir şekilde değiştiremez.Eğer bir değişken bildiriminin başına volatile yazarsanız ,bu değişkenin değerini programın herhangi bir yerinde değiştire biliriz.

#include "stdio.h"
main( )
{
int d1=1;
for(d1; d1<=10; d1++) printf("%d",d1); }

/*Aşağıdaki program derlenmez, çünkü d1 değişkeni değişmez */
#include "stdio.h"
main( )
{
const int d1=1;
for (d1; d1<=10; d1++); printf("%d",d1); }


SABİTLER
Sabitler,program içinde kullanılan ve değişmeyen değerlerdir. C dilinde 10'luk sayı sistemi yerine 8'lik veya 16'lık sayı sistemi kullanabiliriz. 8'lik sayı
sistemine OCTAL , 16 'lık sayı sisteminde HEXADECIMAL sayı sistemi denir. Octal bir sabit '0' rakamı ile, hexadecımal bir sabit ise '0x' ile başlar.
EA /*hex*/ (10'luk sayı sisteminde 234)
93 /*octal*/ (10'luk sayı sisteminde 147)
C 'de karakter dizisi olarak tanımlanan bir veri çeşidi olmadığı için biz karakter dizisi sabitleri tanımlayabiliriz.

Aşağıda her iki örnekte "C 'yi çok seviyorum " yazmaktadır.
#include "stdio.h" #include "stdio.h"
main( ) main( )
{ {
printf("C'yi çok seviyorum "); printf( " %s %s %s " , " C'yi " , " çok " , " seviyorum " );
} }

Veri Çeşitlerini Geçici Olarak Değiştirmek
1Bazen bir değişkenin veri çeşidi geçici olarak değiştirilebilir. Bunun için TYPE CAST özelliğini kullanabiliriz.

#include "stdio.h"
main( )
{
double d1;
d1=345.718;
printf("%f",d1);
printf(" %f , (int )d1 );
}
Programda veri değiştirme TYPE CAST metodu ile Double bir değer , Int bir değere çevrilir.

İŞLEMCİLER

İLİŞKİSEL İŞLEMCİ MANTIKSAL İŞLEMCİ ARİTMETİK İŞLEMCİLER
> Büyüktür && And * Çarpma
>= Büyük eşit II Or / Bölme
< Küçük ! Not % Kalan
<= Küçük eşit + Toplama
== Eşit - Çıkarma
!= Eşit değil

Hiç yorum yok:

Yorum Gönder

Teşekkürler