C Programlama Dilinde Değişkenler
İçindekiler
- int main( void ){ int sayi; float ondaliksayi; char isim[30]; double x; - - - double y; return 0;}
aynı-tipe-sahip-birden-fazla-değişken-kullanılacaksa -bunları-örnekteki-gibi-alt-alta -yazmak-yerine-tek-bir-satırda-da-tanımlayabiliriz.-Örnekte-tanımladığımız-x,y-değişkenleri-aynı-tipte-olduğu-için-tek-bir-satırda-virgülle-(,)-ayırarak-tanımlayabiliriz.
double x, y;
birden-fazla-değişken-kullanımında-tüm-değişkenlere-aynı-değeri-atamak
int a,b,c;a = b = c = 10;
Örnekte-a,b,c-değişkenlerinin-hepsine-10-değerini-atadık.-toplu-atamalarda-dikkat-edilmesi-gereken-tek-husus-değişkenlerin-tipinin-aynı-olması-zorunluluğudur.
tanımlama-sonrası-değer-atama değişkenlerimize-tanımlama-esnasında-değer-atama-zorunlu-değildir.-kodlamanın-ilerleyen-evrelerinde-değer-ataması-yapılabilir.-bu-tarz-atama-işlemleri-kullanıcının-değer-girmesi-gerektiği-kod-satırında-faydalıdır.-dikkat-edilecek-nokta-ise-değişken-tanımlanması-değişkene-değer-atanmasından-önce-yapılmalıdır.
#include
#include int main(int argc, char**-argv) { - - - int x = 3,-z = 4,-t = 5,-c = x,-y = 3; - - - //int-x=3,z=4,t=x,y=3; - - - -y = z = x; - - - -y = t; //y-degiskenin-ici-t-degiskenin-ici-ile-ayni-degeri-aliyor - - - -printf("x=%d-y=%d-z=%d-t=%d",-x,-y,-z,-t); - -return (exit_success);} Örnek-: #include int main( argc, char** argv ){//tanımlamada-değer-atama// int sayi = 5;//tanımlama-sonrası-değer-atama// - - - int sayi; - - - -sayi = 5//tanımlama-sonrası-değer-atama// - - - float ondaliksayi; ondaliksayi = 3.14;//tanımlama-sonrası-değer-atama// - - - int deger; - - - printf ("n deger-giriniz"); - - - scanf ("%d", °er); - - - printf ("girilen-deger:%d");return 0;} bir-karakter-dizisi-değişmezi-bellekte-saklandığı-zaman,-dizinin-sonuna-otomatik-olarak-boş-karakter-(?)-eklenir;-bundan-dolayı-diziyi-saklamak-için-kullanılan-bayt-sayısı-dizinin-uzunluğundan-bir-fazladır.-bir-program-içinde,-aralarına-hiçbir-işaret-koymadan-peşpeşe-yazılan-karakter-dizisi-değişmezleri-birleştirilir-ve-tek-bir-dizi-değişmezi-olarak-alınırlar.-diziler,-bazı-sistemlerde,-salt-okunur-belleğe-yerleştirilebilirler,-bu-da-onları-değiştirilemez-kılabilir.-ayrıca,-birbirine-tıpatıp-benzeyen-iki-veya-daha-fazla-karakter-dizisi-aynı-bellek-bölgesinde-saklanabilir. temel-veri-tipleri-ve-tanımlarbir-değişken-ismi,-değişkenin-alacağı-değerlerin-türü-ve-işlevini-yansıtacak-şekildedikkatlice-seçilen-bir-tanıtıcı-sözcüktür.-genelde,-kalan_gunler-veya-kalangunlerşeklinde-bir-değişken-ismi-x132-gibi-bir-isme-tercih-edilmelidir.-değişken-isimlerindebüyük-harfler-yerine-küçük-harflerin-kullanılması-alışılagelmiştir.bir-c-programında,-kullanılmadan-önce,-tüm-değişken-ve-fonksiyonların-tanımı-veyabildirimi-yapılmalıdır.-temel-veri-tiplerinin,-yani-tamsayı,-kayan-noktalı-sayılar-vekarakterlerin-bildiriminde-kullanılan-anahtar-sözcükler-şunlardır:10bir-tanım,-bir-tip-ismi-ile-tanımlanmakta-olan-nesnelerin-virgülle-ayrılmış-listesindenoluşur-ve-bir-noktalı-virgül-ile-sona-erer.-aşağıda-birkaç-örnek-tanım-gösterilmiştir:son-iki-tanımda,-tek-boyutlu-ve-üç-elemanlı-bir-tamsayı-dizisi-ile-tek-boyutlu-ve-200elemanlı-kayan-noktalı-sayılardan-oluşan-bir-dizi-tanımlanmıştır.-dizinin-boyunun-derlemeesnasında-hesaplanabilen-değişmez-bir-ifade-olduğuna-dikkat-edin.aşağıda-görüldüğü-gibi,-değişkenler-tanımlandıkları-zaman-ilk-değerleri-deverilebilir: buna-ilkleme-diyoruz.-İlk-değer-olarak-bir-ifadenin-de-yazılabileceğine-dikkat-edin.tanımlanan-değişkenlerin-ilklenmesi-iyi-bir-alışkanlıktır.İsimlendirilmiş-değişmezler,-yani-değerleri-değiştirilemeyecek-olan-değişkenler,const-tip-niteleyicisi-kullanılarak-tanımlanırlar:bu-tip-değişmez-“değişken”lerin-const-ile-tanımlanmasının-en-azından-iki-avantajıvardır: programcı-yanlışlıkla-bu-tip-bir-değişkene-atama-yapmaya-kalkar-veya-değerini-değiştirebilecek-bir-şekilde-kullanmaya-kalkarsa,-derleyici-onu-uyaracaktır. Çok-kullanıcılı-sistemlerde-bu-tip-değişkenlerin-ortak-ve-değiştirilemez-bir-bellek-kesimine-yüklenmesi-sağlanabilir. aynı-anda-başka-bir-süreç-(program)-tarafından-kullanılan-veya-değiştirilebilendeğişkenlerin,-derleyicinin-olası-bir-eniyileme-yapmasını-engellemek-için,-volatile-tipbÖlÜm-1niteleyicisi-kullanılarak-tanımlanması-gerekmektedir.-Örneğin,-çok-kullanıcılı-ortamlardaiki-değişik-süreç-tarafından-ortak-kullanılan-bir-değişkenin-volatile-tanımlanmasıgerekir.tanımlanmış-bir-değişken,-bir-deyim-içinde-ismi-verilerek-anılır.-dizi-elemanlarınaulaşmak-için-çeşitli-yollar-olmasına-rağmen,-çoğu-zaman-dizi-isminin-arkasına-köşeliparantezler-içinde-indis-belirtilerek-kullanılırlar.-eleman-sayısı-boy-olan-bir-dizi-içinindisin-alabileceği-değerler-0’dan-boy-1’e-kadar-değişir.-yani,-yukarıda-tanımlanmışolan-u-tamsayı-dizisinin-elemanları-u[0],-u[1]-veya-u[2]-şeklinde-kullanılabilir.İndisin-her-zaman-değişmez-bir-tamsayı-olmasına-gerek-yoktur;-genelde-bir-ifade-olur.yani,-u[x+5]-geçerli-bir-kullanımdır.-doğal-olarak,-eğer-“x+5”-ifadesinin-değeri-0,-1veya-2-değilse,-beklenmeyen-sonuçlar-elde-edilebilir.-bu-tip-kullanımları-kontrol-altındatutmak-tamamen-programcının-sorumluluğundadır. değişik-tiplerde-tanımlanmış-değişkenler-için,-mevcut-derleyiciler-tarafından-ayrılanbellek-miktarı-ile-alt-ve-üst-limit-değerleri-şöyledir: not:-16-bitlik-bilgisayarlarda-veya-derleyicilerde-(signed-veya-unsigned)-int-16-bittir;-32-bitliklerde-ise-32-bittir. #include- #include- int main(void){ - - /////////karakter/////////////// - char karakter1='a'; - char karakter2=34; - - //////////////tam-sayilar////////////// - - - //int-sayi1=32.768;-küsüratlı-sayı-kullanılamaz - - - int sayi1=32768; - - unsigned int sayi2=666666666; - - short int sayi3=65236; - - unsigned short int sayi4=13010; - - long int sayi5=2305198322512599414; - - unsigned long int sayi6=-23051983225125994; - - - ////////////ondalıklı-sayılar - - float sayi7=35.12345678849445674; - - double sayi8=6629387.5034986790485769305876093485760985760943857609438760934876; - - - return 0; - - - - - } ">C Programlama Dilinde Değişkenler Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına ihtiyacı vardır. İşte değişkenler bu bellek adreslerine verilen isimlerdir. Değişkenler bellekte bilginin saklandığı hücreler verilmiş sembolik adlardır. Her değişkenin tuttuğu değerin nasıl bir veri olduğunu gösteren bir tipi vardır. C dilinde temelde birkaç tane değişken tipi vardır. C gibi yüksek seviyeli programlama dilleri programcıyı bellek adreslerinin karmaşasından kurtararak değişkenler aracılığıyla bellek alanlarına takma isimler vermemize olanak tanırlar. Bu sayede hexadecimal olarak bilinen 16'lık sayı tabanında tutulan bellek adreslerini bilme zorunluluğumuz ortadan kalkar ve kodlama süresince ihtiyaç duyulan bellek alanlarına kendi adlandırdığımız isimlerle erişebilme kolaylığına sahip oluruz. Değişken isimleri verirken bazı kurallara uymak gereklidir. Değişken adları en fazla 32 karakterden oluşabilir. 32 karakterden uzun değişken adları ilk 32 karakteri değerlendirilir. Geriye kalan karakterler işleme tabi tutulmaz. Değişken adları ingiliz alfabesinde bulunan karakterler (A-Z) veya (a-z) yada rakamlar (0-9) ile yazılmalıdır. Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz. Değişken adları herhangi bir rakam ile başlayamaz. İlk karakter bir harf olamalıdır. Sonrakiler rakamlardan oluşabilir. Daha önce değişken adı olarak kullanılmış bir isim prg içerisinde başka bir değişkene verilemez. C dili büyük ve küçük harf ayrımı olan bir dildir. sayi, Sayi ve SAYI kelimeleri 3 farklı değişkene isim olarak verilebilir. ANSI C 'nin anahtar kelimeleri (key words) değişken ismi olarak kullanılamaz. Kullanılan makine ve derleyiciye bağlı olarak, C dilinin özel durumundan dolayı başka anahtar sözcükler de olabilir. Bunlar genelde altçizgi karakteriyle başlarlar. Değişkenlerin Genel Yazım Formatı Özel Anahtar Kelimeler : static ve const gibi çeşitli anahtar kelimeleri içerir. Değişken yazılırken belirtilmesi zorunluluğu yoktur. Özel bir durum sözkonusu değilse kullanılmaz. Değişken Tipi : C Programlama dili type-safe bir dildir. Bu nedenle kodlamada tanımlanacak her değişkenin tipinin belirtilmesi zorunlu kılınmıştır. Bu tipler int ve double gibi C dilinin sağladığı veri tipleri olacağı gibi programcının struct kullanarak kendi oluşturacağı veri tipleride olabilir. Değişken tipi belirleme zorunludur. Değişken Adı : Programcının değişkenlere vereceği tek kelimeden oluşan adlardır. Zorunludur. Değişlenin Değeri : Değişkene atanan değeri ifade eder. Ve mutlak surette değişken tipiyle uyumlu olması gereklidir. Örneğin bir tamsayı değişkenine karakter atanamaz. Değişkenlerin Tanımlanması (Declaration) ve Değer Atanması (Initialization) Öncelikle değişkenin tipi belirlenmelidir. Yani x isimli bir değişkenimiz varsa ve buna tamsayı bir değer atamak istiyorsak, x değişkenini tamsayı olarak tanımlamamız gerekir. Eğer x'e girilecek değer bir karakter veya virgüllü sayı olsaydı, değişken tipinin ona göre tanımlanması gerekecektir. Bir örnekle konuyu anlamaya çalışalım. Örnek : #include int main( void ){ int x; x = 15; printf("x sayısı %d",x); return 0;} Örnekte ilk olarak int x ile değişkenimizin integer tipinde bir değişken olacağını belirliyoruz.Integer tipi değişkenimizin tamsayı tipinde olacağının ifadesidir. int x ile x isim değişkenimizin tamsayı tipinde olacağını belirtmiş oluyoruz. x=15 ise, x değişkenine 15 değerini atamak anlamına gelmektedir. Bu demek oluyorki artık x 15 sayısını taşımaktadır. Kodlamada x değişkenimizi programımızın neresinde kullanırsak kullanalım artık x'in değeri 15 olarak işleme alınacaktır. printf(); fonksiyonunun içerisine yazdığımız %d ise, ekranda tamsayı bir değişken değeri gözükecek anlamındadır. Çift tırnaktan sonra koyacağımız x değeri ise, görüntülenecek değişkenin x olduğunu belirtir. Burada dikkat etmemizi gereken husus çift tırnaktan sonra, virgül koyup sonra değişkenin adını yazdığımızdır. Temel olarak bir değişkeni tanımlamak için en önemli şart değişkenin adının ve tipinin öncelikli olarak belirlenmesidir. Değişken tanımlama ifadeleri mutlak surette (;) ile tamamlanmalıdır. Şimdi birlikte bir tanımlama örneği daha yapalım : Örnek : #include int main( void ){ int sayi; float ondalikSayi; char isim[30]; double x; double y; return 0;} Aynı tipe sahip birden fazla değişken kullanılacaksa bunları örnekteki gibi alt alta yazmak yerine tek bir satırda da tanımlayabiliriz. Örnekte tanımladığımız x,y değişkenleri aynı tipte olduğu için tek bir satırda virgülle (,) ayırarak tanımlayabiliriz. double x, y; Birden fazla değişken kullanımında tüm değişkenlere aynı değeri atamak int a,b,c;a = b = c = 10; Örnekte a,b,c değişkenlerinin hepsine 10 değerini atadık. Toplu atamalarda dikkat edilmesi gereken tek husus değişkenlerin tipinin aynı olması zorunluluğudur. Tanımlama Sonrası Değer Atama Değişkenlerimize tanımlama esnasında değer atama zorunlu değildir. Kodlamanın ilerleyen evrelerinde değer ataması yapılabilir. Bu tarz atama işlemleri kullanıcının değer girmesi gerektiği kod satırında faydalıdır. Dikkat edilecek nokta ise değişken tanımlanması değişkene değer atanmasından önce yapılmalıdır. #include #include int main(int argc, char** argv) { int x = 3, z = 4, t = 5, c = x, y = 3; //int x=3,z=4,t=x,y=3; y = z = x; y = t; //y degiskenin ici t degiskenin ici ile ayni degeri aliyor printf("x=%d y=%d z=%d t=%d", x, y, z, t); return (EXIT_SUCCESS);} Örnek : #include int main( argc, char** argv ){//tanımlamada değer atama// int sayi = 5;//tanımlama sonrası değer atama// int sayi; sayi = 5//tanımlama sonrası değer atama// float ondalikSayi; ondalikSayi = 3.14;//tanımlama sonrası değer atama// int deger; printf ("n deger giriniz"); scanf ("%d", °er); printf ("girilen deger:%d");return 0;} Bir karakter dizisi değişmezi bellekte saklandığı zaman, dizinin sonuna otomatik olarak boş karakter (?) eklenir; bundan dolayı diziyi saklamak için kullanılan bayt sayısı dizinin uzunluğundan bir fazladır. Bir program içinde, aralarına hiçbir işaret koymadan peşpeşe yazılan karakter dizisi değişmezleri birleştirilir ve tek bir dizi değişmezi olarak alınırlar. Diziler, bazı sistemlerde, salt-okunur belleğe yerleştirilebilirler, bu da onları değiştirilemez kılabilir. Ayrıca, birbirine tıpatıp benzeyen iki veya daha fazla karakter dizisi aynı bellek bölgesinde saklanabilir. Temel Veri Tipleri Ve TanımlarBir değişken ismi, değişkenin alacağı değerlerin türü ve işlevini yansıtacak şekildedikkatlice seçilen bir tanıtıcı sözcüktür. Genelde, kalan_gunler veya kalanGunlerşeklinde bir değişken ismi x132 gibi bir isme tercih edilmelidir. Değişken isimlerindebüyük harfler yerine küçük harflerin kullanılması alışılagelmiştir.Bir C programında, kullanılmadan önce, tüm değişken ve fonksiyonların tanımı veyabildirimi yapılmalıdır. Temel veri tiplerinin, yani tamsayı, kayan noktalı sayılar vekarakterlerin bildiriminde kullanılan anahtar sözcükler şunlardır:10Bir tanım, bir tip ismi ile tanımlanmakta olan nesnelerin virgülle ayrılmış listesindenoluşur ve bir noktalı virgül ile sona erer. Aşağıda birkaç örnek tanım gösterilmiştir:Son iki tanımda, tek boyutlu ve üç elemanlı bir tamsayı dizisi ile tek boyutlu ve 200elemanlı kayan noktalı sayılardan oluşan bir dizi tanımlanmıştır. Dizinin boyunun derlemeesnasında hesaplanabilen değişmez bir ifade olduğuna dikkat edin.Aşağıda görüldüğü gibi, değişkenler tanımlandıkları zaman ilk değerleri deverilebilir: Buna ilkleme diyoruz. İlk değer olarak bir ifadenin de yazılabileceğine dikkat edin.Tanımlanan değişkenlerin ilklenmesi iyi bir alışkanlıktır.İsimlendirilmiş değişmezler, yani değerleri değiştirilemeyecek olan değişkenler,const tip niteleyicisi kullanılarak tanımlanırlar:Bu tip değişmez “değişken”lerin const ile tanımlanmasının en azından iki avantajıvardır: Programcı yanlışlıkla bu tip bir değişkene atama yapmaya kalkar veya değerini değiştirebilecek bir şekilde kullanmaya kalkarsa, derleyici onu uyaracaktır. Çok kullanıcılı sistemlerde bu tip değişkenlerin ortak ve değiştirilemez bir bellek kesimine yüklenmesi sağlanabilir. Aynı anda başka bir süreç (program) tarafından kullanılan veya değiştirilebilendeğişkenlerin, derleyicinin olası bir eniyileme yapmasını engellemek için, volatile tipBÖLÜM 1niteleyicisi kullanılarak tanımlanması gerekmektedir. Örneğin, çok kullanıcılı ortamlardaiki değişik süreç tarafından ortak kullanılan bir değişkenin volatile tanımlanmasıgerekir.Tanımlanmış bir değişken, bir deyim içinde ismi verilerek anılır. Dizi elemanlarınaulaşmak için çeşitli yollar olmasına rağmen, çoğu zaman dizi isminin arkasına köşeliparantezler içinde indis belirtilerek kullanılırlar. Eleman sayısı BOY olan bir dizi içinindisin alabileceği değerler 0’dan BOY-1’e kadar değişir. Yani, yukarıda tanımlanmışolan u tamsayı dizisinin elemanları u[0], u[1] veya u[2] şeklinde kullanılabilir.İndisin her zaman değişmez bir tamsayı olmasına gerek yoktur; genelde bir ifade olur.Yani, u[x+5] geçerli bir kullanımdır. Doğal olarak, eğer “x+5” ifadesinin değeri 0, 1veya 2 değilse, beklenmeyen sonuçlar elde edilebilir. Bu tip kullanımları kontrol altındatutmak tamamen programcının sorumluluğundadır. Değişik tiplerde tanımlanmış değişkenler için, mevcut derleyiciler tarafından ayrılanbellek miktarı ile alt ve üst limit değerleri şöyledir: Not: 16 bitlik bilgisayarlarda veya derleyicilerde (signed veya unsigned) int 16 bittir; 32 bitliklerde ise 32 bittir. #include #include int main(void){ /////////karakter/////////////// char karakter1='A'; char karakter2=34; //////////////tam sayilar////////////// //int sayi1=32.768; küsüratlı sayı kullanılamaz int sayi1=32768; unsigned int sayi2=666666666; short int sayi3=65236; unsigned short int sayi4=13010; long int sayi5=2305198322512599414; unsigned long int sayi6=-23051983225125994; ////////////ondalıklı sayılar float sayi7=35.12345678849445674; double sayi8=6629387.5034986790485769305876093485760985760943857609438760934876; return 0; } - Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına ihtiyacı vardır. İşte değişkenler bu bellek adreslerine verilen isimlerdir.
- Değişkenlerin Genel Yazım Formatı
- Değişkenlerin Tanımlanması (Declaration) ve Değer Atanması (Initialization)
C Programlama Dilinde Değişkenler
Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına ihtiyacı vardır. İşte değişkenler bu bellek adreslerine verilen isimlerdir.
Değişkenler bellekte bilginin saklandığı hücreler verilmiş sembolik adlardır. Her değişkenin tuttuğu değerin nasıl bir veri olduğunu gösteren bir tipi vardır. C dilinde temelde birkaç tane değişken tipi vardır.
C gibi yüksek seviyeli programlama dilleri programcıyı bellek adreslerinin karmaşasından kurtararak değişkenler aracılığıyla bellek alanlarına takma isimler vermemize olanak tanırlar. Bu sayede hexadecimal olarak bilinen 16'lık sayı tabanında tutulan bellek adreslerini bilme zorunluluğumuz ortadan kalkar ve kodlama süresince ihtiyaç duyulan bellek alanlarına kendi adlandırdığımız isimlerle erişebilme kolaylığına sahip oluruz.
Değişken isimleri verirken bazı kurallara uymak gereklidir.
- Değişken adları en fazla 32 karakterden oluşabilir.
- 32 karakterden uzun değişken adları ilk 32 karakteri değerlendirilir.
- Geriye kalan karakterler işleme tabi tutulmaz.
- Değişken adları ingiliz alfabesinde bulunan karakterler (A-Z) veya (a-z) yada rakamlar (0-9) ile yazılmalıdır.
- Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz.
- Değişken adları herhangi bir rakam ile başlayamaz.
- İlk karakter bir harf olamalıdır. Sonrakiler rakamlardan oluşabilir.
- Daha önce değişken adı olarak kullanılmış bir isim prg içerisinde başka bir değişkene verilemez.
- C dili büyük ve küçük harf ayrımı olan bir dildir. sayi, Sayi ve SAYI kelimeleri 3 farklı değişkene isim olarak verilebilir.
- ANSI C 'nin anahtar kelimeleri (key words) değişken ismi olarak kullanılamaz.
Kullanılan makine ve derleyiciye bağlı olarak, C dilinin özel durumundan dolayı başka anahtar sözcükler de olabilir. Bunlar genelde altçizgi karakteriyle başlarlar.
Değişkenlerin Genel Yazım Formatı
Özel Anahtar Kelimeler : static ve const gibi çeşitli anahtar kelimeleri içerir. Değişken yazılırken belirtilmesi zorunluluğu yoktur. Özel bir durum sözkonusu değilse kullanılmaz.
Değişken Tipi : C Programlama dili type-safe bir dildir. Bu nedenle kodlamada tanımlanacak her değişkenin tipinin belirtilmesi zorunlu kılınmıştır. Bu tipler int ve double gibi C dilinin sağladığı veri tipleri olacağı gibi programcının struct kullanarak kendi oluşturacağı veri tipleride olabilir. Değişken tipi belirleme zorunludur.
Değişken Adı : Programcının değişkenlere vereceği tek kelimeden oluşan adlardır. Zorunludur.
Değişlenin Değeri : Değişkene atanan değeri ifade eder. Ve mutlak surette değişken tipiyle uyumlu olması gereklidir. Örneğin bir tamsayı değişkenine karakter atanamaz.
Değişkenlerin Tanımlanması (Declaration) ve Değer Atanması (Initialization)
Öncelikle değişkenin tipi belirlenmelidir. Yani x isimli bir değişkenimiz varsa ve buna tamsayı bir değer atamak istiyorsak, x değişkenini tamsayı olarak tanımlamamız gerekir. Eğer x'e girilecek değer bir karakter veya virgüllü sayı olsaydı, değişken tipinin ona göre tanımlanması gerekecektir. Bir örnekle konuyu anlamaya çalışalım.
Örnek :
#include<stdio.h>
int main( void )
{
int x;
x = 15;
printf("x sayısı %d",x);
return 0;
}
Örnekte ilk olarak int x ile değişkenimizin integer tipinde bir değişken olacağını belirliyoruz.Integer tipi değişkenimizin tamsayı tipinde olacağının ifadesidir. int x ile x isim değişkenimizin tamsayı tipinde olacağını belirtmiş oluyoruz. x=15 ise, x değişkenine 15 değerini atamak anlamına gelmektedir. Bu demek oluyorki artık x 15 sayısını taşımaktadır. Kodlamada x değişkenimizi programımızın neresinde kullanırsak kullanalım artık x'in değeri 15 olarak işleme alınacaktır. printf(); fonksiyonunun içerisine yazdığımız %d ise, ekranda tamsayı bir değişken değeri gözükecek anlamındadır. Çift tırnaktan sonra koyacağımız x değeri ise, görüntülenecek değişkenin x olduğunu belirtir. Burada dikkat etmemizi gereken husus çift tırnaktan sonra, virgül koyup sonra değişkenin adını yazdığımızdır.
Temel olarak bir değişkeni tanımlamak için en önemli şart değişkenin adının ve tipinin öncelikli olarak belirlenmesidir. Değişken tanımlama ifadeleri mutlak surette (;) ile tamamlanmalıdır. Şimdi birlikte bir tanımlama örneği daha yapalım :
Örnek :
#include<stdio.h>
int main( void )
{
int sayi;
float ondalikSayi;
char isim[30];
double x;
double y;
return 0;
}
Aynı tipe sahip birden fazla değişken kullanılacaksa bunları örnekteki gibi alt alta yazmak yerine tek bir satırda da tanımlayabiliriz. Örnekte tanımladığımız x,y değişkenleri aynı tipte olduğu için tek bir satırda virgülle (,) ayırarak tanımlayabiliriz.
double x, y;
Birden fazla değişken kullanımında tüm değişkenlere aynı değeri atamak
int a,b,c;
a = b = c = 10;
Örnekte a,b,c değişkenlerinin hepsine 10 değerini atadık. Toplu atamalarda dikkat edilmesi gereken tek husus değişkenlerin tipinin aynı olması zorunluluğudur.
Tanımlama Sonrası Değer Atama
Değişkenlerimize tanımlama esnasında değer atama zorunlu değildir. Kodlamanın ilerleyen evrelerinde değer ataması yapılabilir. Bu tarz atama işlemleri kullanıcının değer girmesi gerektiği kod satırında faydalıdır. Dikkat edilecek nokta ise değişken tanımlanması değişkene değer atanmasından önce yapılmalıdır.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int x = 3, z = 4, t = 5, c = x, y = 3;
//int x=3,z=4,t=x,y=3;
y = z = x;
y = t; //y degiskenin ici t degiskenin ici ile ayni degeri aliyor
printf("x=%d y=%d z=%d t=%d", x, y, z, t);
return (EXIT_SUCCESS);
}
Örnek :
#include<stdio.h>
int main( argc, char** argv )
{
//tanımlamada değer atama//
int sayi = 5;
//tanımlama sonrası değer atama//
int sayi;
sayi = 5
//tanımlama sonrası değer atama//
float ondalikSayi;
ondalikSayi = 3.14;
//tanımlama sonrası değer atama//
int deger;
printf ("n deger giriniz");
scanf ("%d", °er);
printf ("girilen deger:%d");
return 0;
}
Bir karakter dizisi değişmezi bellekte saklandığı zaman, dizinin sonuna otomatik olarak boş karakter (?) eklenir; bundan dolayı diziyi saklamak için kullanılan bayt sayısı dizinin uzunluğundan bir fazladır. Bir program içinde, aralarına hiçbir işaret koymadan peşpeşe yazılan karakter dizisi değişmezleri birleştirilir ve tek bir dizi değişmezi olarak alınırlar. Diziler, bazı sistemlerde, salt-okunur belleğe yerleştirilebilirler, bu da onları değiştirilemez kılabilir. Ayrıca, birbirine tıpatıp benzeyen iki veya daha fazla karakter dizisi aynı bellek bölgesinde saklanabilir.
Temel Veri Tipleri Ve Tanımlar
Bir değişken ismi, değişkenin alacağı değerlerin türü ve işlevini yansıtacak şekilde
dikkatlice seçilen bir tanıtıcı sözcüktür. Genelde, kalan_gunler veya kalanGunler
şeklinde bir değişken ismi x132 gibi bir isme tercih edilmelidir. Değişken isimlerinde
büyük harfler yerine küçük harflerin kullanılması alışılagelmiştir.
Bir C programında, kullanılmadan önce, tüm değişken ve fonksiyonların tanımı veya
bildirimi yapılmalıdır. Temel veri tiplerinin, yani tamsayı, kayan noktalı sayılar ve
karakterlerin bildiriminde kullanılan anahtar sözcükler şunlardır:10
Bir tanım, bir tip ismi ile tanımlanmakta olan nesnelerin virgülle ayrılmış listesinden
oluşur ve bir noktalı virgül ile sona erer. Aşağıda birkaç örnek tanım gösterilmiştir:
Son iki tanımda, tek boyutlu ve üç elemanlı bir tamsayı dizisi ile tek boyutlu ve 200
elemanlı kayan noktalı sayılardan oluşan bir dizi tanımlanmıştır. Dizinin boyunun derleme
esnasında hesaplanabilen değişmez bir ifade olduğuna dikkat edin.
Aşağıda görüldüğü gibi, değişkenler tanımlandıkları zaman ilk değerleri de
verilebilir:
Buna ilkleme diyoruz. İlk değer olarak bir ifadenin de yazılabileceğine dikkat edin.
Tanımlanan değişkenlerin ilklenmesi iyi bir alışkanlıktır.
İsimlendirilmiş değişmezler, yani değerleri değiştirilemeyecek olan değişkenler,
const tip niteleyicisi kullanılarak tanımlanırlar:
Bu tip değişmez “değişken”lerin const ile tanımlanmasının en azından iki avantajı
vardır:
- Programcı yanlışlıkla bu tip bir değişkene atama yapmaya kalkar veya değerini değiştirebilecek bir şekilde kullanmaya kalkarsa, derleyici onu uyaracaktır.
- Çok kullanıcılı sistemlerde bu tip değişkenlerin ortak ve değiştirilemez bir bellek kesimine yüklenmesi sağlanabilir.
Aynı anda başka bir süreç (program) tarafından kullanılan veya değiştirilebilen
değişkenlerin, derleyicinin olası bir eniyileme yapmasını engellemek için, volatile tipBÖLÜM 1
niteleyicisi kullanılarak tanımlanması gerekmektedir. Örneğin, çok kullanıcılı ortamlarda
iki değişik süreç tarafından ortak kullanılan bir değişkenin volatile tanımlanması
gerekir.
Tanımlanmış bir değişken, bir deyim içinde ismi verilerek anılır. Dizi elemanlarına
ulaşmak için çeşitli yollar olmasına rağmen, çoğu zaman dizi isminin arkasına köşeli
parantezler içinde indis belirtilerek kullanılırlar. Eleman sayısı BOY olan bir dizi için
indisin alabileceği değerler 0’dan BOY-1’e kadar değişir. Yani, yukarıda tanımlanmış
olan u tamsayı dizisinin elemanları u[0], u[1] veya u[2] şeklinde kullanılabilir.
İndisin her zaman değişmez bir tamsayı olmasına gerek yoktur; genelde bir ifade olur.
Yani, u[x+5] geçerli bir kullanımdır. Doğal olarak, eğer “x+5” ifadesinin değeri 0, 1
veya 2 değilse, beklenmeyen sonuçlar elde edilebilir. Bu tip kullanımları kontrol altında
tutmak tamamen programcının sorumluluğundadır.
Değişik tiplerde tanımlanmış değişkenler için, mevcut derleyiciler tarafından ayrılan
bellek miktarı ile alt ve üst limit değerleri şöyledir:
Not: 16 bitlik bilgisayarlarda veya derleyicilerde (signed veya unsigned) int 16 bittir; 32 bitliklerde ise 32 bittir.
#include <stdio.h>
#include <stdlib.h>
int main(void){
/////////karakter///////////////
char karakter1='A';
char karakter2=34;
//////////////tam sayilar//////////////
//int sayi1=32.768; küsüratlı sayı kullanılamaz
int sayi1=32768;
unsigned int sayi2=666666666;
short int sayi3=65236;
unsigned short int sayi4=13010;
long int sayi5=2305198322512599414;
unsigned long int sayi6=-23051983225125994;
////////////ondalıklı sayılar
float sayi7=35.12345678849445674;
double sayi8=6629387.5034986790485769305876093485760985760943857609438760934876;
return 0;
}
Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına ihtiyacı vardır. İşte değişkenler bu bellek adreslerine verilen isimlerdir.
Değişkenler bellekte bilginin saklandığı hücreler verilmiş sembolik adlardır. Her değişkenin tuttuğu değerin nasıl bir veri olduğunu gösteren bir tipi vardır. C dilinde temelde birkaç tane değişken tipi vardır.
C gibi yüksek seviyeli programlama dilleri programcıyı bellek adreslerinin karmaşasından kurtararak değişkenler aracılığıyla bellek alanlarına takma isimler vermemize olanak tanırlar. Bu sayede hexadecimal olarak bilinen 16'lık sayı tabanında tutulan bellek adreslerini bilme zorunluluğumuz ortadan kalkar ve kodlama süresince ihtiyaç duyulan bellek alanlarına kendi adlandırdığımız isimlerle erişebilme kolaylığına sahip oluruz.
Değişken isimleri verirken bazı kurallara uymak gereklidir.
- Değişken adları en fazla 32 karakterden oluşabilir.
- 32 karakterden uzun değişken adları ilk 32 karakteri değerlendirilir.
- Geriye kalan karakterler işleme tabi tutulmaz.
- Değişken adları ingiliz alfabesinde bulunan karakterler (A-Z) veya (a-z) yada rakamlar (0-9) ile yazılmalıdır.
- Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz.
- Değişken adları herhangi bir rakam ile başlayamaz.
- İlk karakter bir harf olamalıdır. Sonrakiler rakamlardan oluşabilir.
- Daha önce değişken adı olarak kullanılmış bir isim prg içerisinde başka bir değişkene verilemez.
- C dili büyük ve küçük harf ayrımı olan bir dildir. sayi, Sayi ve SAYI kelimeleri 3 farklı değişkene isim olarak verilebilir.
- ANSI C 'nin anahtar kelimeleri (key words) değişken ismi olarak kullanılamaz.
Kullanılan makine ve derleyiciye bağlı olarak, C dilinin özel durumundan dolayı başka anahtar sözcükler de olabilir. Bunlar genelde altçizgi karakteriyle başlarlar.
Değişkenlerin Genel Yazım Formatı
Özel Anahtar Kelimeler : static ve const gibi çeşitli anahtar kelimeleri içerir. Değişken yazılırken belirtilmesi zorunluluğu yoktur. Özel bir durum sözkonusu değilse kullanılmaz.
Değişken Tipi : C Programlama dili type-safe bir dildir. Bu nedenle kodlamada tanımlanacak her değişkenin tipinin belirtilmesi zorunlu kılınmıştır. Bu tipler int ve double gibi C dilinin sağladığı veri tipleri olacağı gibi programcının struct kullanarak kendi oluşturacağı veri tipleride olabilir. Değişken tipi belirleme zorunludur.
Değişken Adı : Programcının değişkenlere vereceği tek kelimeden oluşan adlardır. Zorunludur.
Değişlenin Değeri : Değişkene atanan değeri ifade eder. Ve mutlak surette değişken tipiyle uyumlu olması gereklidir. Örneğin bir tamsayı değişkenine karakter atanamaz.
Değişkenlerin Tanımlanması (Declaration) ve Değer Atanması (Initialization)
Öncelikle değişkenin tipi belirlenmelidir. Yani x isimli bir değişkenimiz varsa ve buna tamsayı bir değer atamak istiyorsak, x değişkenini tamsayı olarak tanımlamamız gerekir. Eğer x'e girilecek değer bir karakter veya virgüllü sayı olsaydı, değişken tipinin ona göre tanımlanması gerekecektir. Bir örnekle konuyu anlamaya çalışalım.
Örnek :
int main( void )
{
int x;
x = 15;
printf("x sayısı %d",x);
return 0;
}
Örnekte ilk olarak int x ile değişkenimizin integer tipinde bir değişken olacağını belirliyoruz.Integer tipi değişkenimizin tamsayı tipinde olacağının ifadesidir. int x ile x isim değişkenimizin tamsayı tipinde olacağını belirtmiş oluyoruz. x=15 ise, x değişkenine 15 değerini atamak anlamına gelmektedir. Bu demek oluyorki artık x 15 sayısını taşımaktadır. Kodlamada x değişkenimizi programımızın neresinde kullanırsak kullanalım artık x'in değeri 15 olarak işleme alınacaktır. printf(); fonksiyonunun içerisine yazdığımız %d ise, ekranda tamsayı bir değişken değeri gözükecek anlamındadır. Çift tırnaktan sonra koyacağımız x değeri ise, görüntülenecek değişkenin x olduğunu belirtir. Burada dikkat etmemizi gereken husus çift tırnaktan sonra, virgül koyup sonra değişkenin adını yazdığımızdır.
Temel olarak bir değişkeni tanımlamak için en önemli şart değişkenin adının ve tipinin öncelikli olarak belirlenmesidir. Değişken tanımlama ifadeleri mutlak surette (;) ile tamamlanmalıdır. Şimdi birlikte bir tanımlama örneği daha yapalım :
Örnek :
int main( void )
{
int sayi;
float ondalikSayi;
char isim[30];
double x;
double y;
return 0;
}
Aynı tipe sahip birden fazla değişken kullanılacaksa bunları örnekteki gibi alt alta yazmak yerine tek bir satırda da tanımlayabiliriz. Örnekte tanımladığımız x,y değişkenleri aynı tipte olduğu için tek bir satırda virgülle (,) ayırarak tanımlayabiliriz.
Birden fazla değişken kullanımında tüm değişkenlere aynı değeri atamak
a = b = c = 10;
Örnekte a,b,c değişkenlerinin hepsine 10 değerini atadık. Toplu atamalarda dikkat edilmesi gereken tek husus değişkenlerin tipinin aynı olması zorunluluğudur.
Tanımlama Sonrası Değer Atama
Değişkenlerimize tanımlama esnasında değer atama zorunlu değildir. Kodlamanın ilerleyen evrelerinde değer ataması yapılabilir. Bu tarz atama işlemleri kullanıcının değer girmesi gerektiği kod satırında faydalıdır. Dikkat edilecek nokta ise değişken tanımlanması değişkene değer atanmasından önce yapılmalıdır.
#include <stdlib.h>
int main(int argc, char** argv) {
int x = 3, z = 4, t = 5, c = x, y = 3;
//int x=3,z=4,t=x,y=3;
y = z = x;
y = t; //y degiskenin ici t degiskenin ici ile ayni degeri aliyor
printf("x=%d y=%d z=%d t=%d", x, y, z, t);
return (EXIT_SUCCESS);
}
Örnek :
int main( argc, char** argv )
{
//tanımlamada değer atama//
int sayi = 5;
//tanımlama sonrası değer atama//
int sayi;
sayi = 5
//tanımlama sonrası değer atama//
float ondalikSayi;
ondalikSayi = 3.14;
//tanımlama sonrası değer atama//
int deger;
printf ("n deger giriniz");
scanf ("%d", °er);
printf ("girilen deger:%d");
return 0;
}
Bir karakter dizisi değişmezi bellekte saklandığı zaman, dizinin sonuna otomatik olarak boş karakter (?) eklenir; bundan dolayı diziyi saklamak için kullanılan bayt sayısı dizinin uzunluğundan bir fazladır. Bir program içinde, aralarına hiçbir işaret koymadan peşpeşe yazılan karakter dizisi değişmezleri birleştirilir ve tek bir dizi değişmezi olarak alınırlar. Diziler, bazı sistemlerde, salt-okunur belleğe yerleştirilebilirler, bu da onları değiştirilemez kılabilir. Ayrıca, birbirine tıpatıp benzeyen iki veya daha fazla karakter dizisi aynı bellek bölgesinde saklanabilir.
Temel Veri Tipleri Ve Tanımlar
Bir değişken ismi, değişkenin alacağı değerlerin türü ve işlevini yansıtacak şekilde
dikkatlice seçilen bir tanıtıcı sözcüktür. Genelde, kalan_gunler veya kalanGunler
şeklinde bir değişken ismi x132 gibi bir isme tercih edilmelidir. Değişken isimlerinde
büyük harfler yerine küçük harflerin kullanılması alışılagelmiştir.
Bir C programında, kullanılmadan önce, tüm değişken ve fonksiyonların tanımı veya
bildirimi yapılmalıdır. Temel veri tiplerinin, yani tamsayı, kayan noktalı sayılar ve
karakterlerin bildiriminde kullanılan anahtar sözcükler şunlardır:10
Bir tanım, bir tip ismi ile tanımlanmakta olan nesnelerin virgülle ayrılmış listesinden
oluşur ve bir noktalı virgül ile sona erer. Aşağıda birkaç örnek tanım gösterilmiştir:
Son iki tanımda, tek boyutlu ve üç elemanlı bir tamsayı dizisi ile tek boyutlu ve 200
elemanlı kayan noktalı sayılardan oluşan bir dizi tanımlanmıştır. Dizinin boyunun derleme
esnasında hesaplanabilen değişmez bir ifade olduğuna dikkat edin.
Aşağıda görüldüğü gibi, değişkenler tanımlandıkları zaman ilk değerleri de
verilebilir:
Buna ilkleme diyoruz. İlk değer olarak bir ifadenin de yazılabileceğine dikkat edin.
Tanımlanan değişkenlerin ilklenmesi iyi bir alışkanlıktır.
İsimlendirilmiş değişmezler, yani değerleri değiştirilemeyecek olan değişkenler,
const tip niteleyicisi kullanılarak tanımlanırlar:
Bu tip değişmez “değişken”lerin const ile tanımlanmasının en azından iki avantajı
vardır:
- Programcı yanlışlıkla bu tip bir değişkene atama yapmaya kalkar veya değerini değiştirebilecek bir şekilde kullanmaya kalkarsa, derleyici onu uyaracaktır.
- Çok kullanıcılı sistemlerde bu tip değişkenlerin ortak ve değiştirilemez bir bellek kesimine yüklenmesi sağlanabilir.
Aynı anda başka bir süreç (program) tarafından kullanılan veya değiştirilebilen
değişkenlerin, derleyicinin olası bir eniyileme yapmasını engellemek için, volatile tipBÖLÜM 1
niteleyicisi kullanılarak tanımlanması gerekmektedir. Örneğin, çok kullanıcılı ortamlarda
iki değişik süreç tarafından ortak kullanılan bir değişkenin volatile tanımlanması
gerekir.
Tanımlanmış bir değişken, bir deyim içinde ismi verilerek anılır. Dizi elemanlarına
ulaşmak için çeşitli yollar olmasına rağmen, çoğu zaman dizi isminin arkasına köşeli
parantezler içinde indis belirtilerek kullanılırlar. Eleman sayısı BOY olan bir dizi için
indisin alabileceği değerler 0’dan BOY-1’e kadar değişir. Yani, yukarıda tanımlanmış
olan u tamsayı dizisinin elemanları u[0], u[1] veya u[2] şeklinde kullanılabilir.
İndisin her zaman değişmez bir tamsayı olmasına gerek yoktur; genelde bir ifade olur.
Yani, u[x+5] geçerli bir kullanımdır. Doğal olarak, eğer “x+5” ifadesinin değeri 0, 1
veya 2 değilse, beklenmeyen sonuçlar elde edilebilir. Bu tip kullanımları kontrol altında
tutmak tamamen programcının sorumluluğundadır.
Değişik tiplerde tanımlanmış değişkenler için, mevcut derleyiciler tarafından ayrılan
bellek miktarı ile alt ve üst limit değerleri şöyledir:
Not: 16 bitlik bilgisayarlarda veya derleyicilerde (signed veya unsigned) int 16 bittir; 32 bitliklerde ise 32 bittir.
#include <stdlib.h>
int main(void){
/////////karakter///////////////
char karakter1='A';
char karakter2=34;
//////////////tam sayilar//////////////
//int sayi1=32.768; küsüratlı sayı kullanılamaz
int sayi1=32768;
unsigned int sayi2=666666666;
short int sayi3=65236;
unsigned short int sayi4=13010;
long int sayi5=2305198322512599414;
unsigned long int sayi6=-23051983225125994;
////////////ondalıklı sayılar
float sayi7=35.12345678849445674;
double sayi8=6629387.5034986790485769305876093485760985760943857609438760934876;
return 0;
}