13.2 Dinamik Matrisler

13.2   Dinamik Matrisler İki veya daha fazla boyuta sahip dinamik dizi oluşturmak mümkündür. Bu durumda, göstericiyi gösteren göstericler kullanılır. Program 13.3, bir matrisin elemanları bulup ekrana yazar. Program 13.3: Dinamik matris tanımlama

ÇIKTI

 

13.1 Dinamik Dizi Fonksiyonları

13.1   Dinamik Dizi Fonksiyonları ANSI C’de, dinamik diziler işaretçi kullanılarak ve standart kütüphanedeki malloc(), calloc(), realloc() ve free() fonksiyonlarının yardımıyla ile oluşturulur veya boşaltılır. Bu fonksiyonlar Tablo 13.1 de listelenmiştir. Tablo 13.1: stdlib.h kütüphanesindeki dinamik bellek fonksiyonları Dinamik Bellek Fonksiyonu Açıklama void *malloc(size_t eleman_sayısı); Bellekte herbiri size_t tipinde olan eleman_sayısı kadar yer (bellek bloğu) ayırır. Bu yer verilmezse geriye NULL gönderir. void *calloc(size_t eleman_sayısı, size_t nbayt); Bellekte herbiri nbayt kadar yer işgal edecek eleman_sayısı kadar 

Devamını Oku…

12.5 Katarların Fonksiyonlarda Kullanılması

12.5   Katarların Fonksiyonlarda Kullanılması Katarların fonksiyonlara parametre olarak geçirilmesi durumuna sıklıkla rastlanır. Gerçekte fonksiyona parametre olarak aktarılan karakter dizisini gösteren bir adrestir. Bu yüzden karakter dizileri fonksiyonlara çoğunlukla gösterici tipinde geçirilir. Aşağıdaki iki örnekte yazılan struzn ve strcev fonksiyonları sırasıyla strlen ve strrev fonksiyonların dengi niteliğindedir. Burada kullanılan benzer mantıkla, string.hkütüphanesindki birçok fonksiyon yazılabilir. İnceleyiniz. Program 12.9: strlen dengi bir fonksiyon: struzn

ÇIKTI

  

Devamını Oku…

12.4 Bazı Katar Fonksiyonları

12.4   Bazı Katar Fonksiyonları Bu fonksiyonlar standart C’de iki katarı karşılaştırmak, bir katarın içeriğini diğerine kopyalamak ve katarın uzunluğunu bulmak vb işlemler için tanımlı fonksiyonlardır. Bu ve benzeri fonksiyonlar kullanılırken string.h kütüphanesi programın başına ilave edilmelidir. Burada, bunlardan bir kaçı Tablo 12.1 de verilmiştir. Tablo 12.1: string.h kütüphanesine ait, bazı katar fonksiyonları Fonksiyon Açıklama int strcmp(char *str1,char *str2); 

Devamını Oku…

12.3 Katarlar Üzerinde İşlem Yapan Standart G/Ç Fonksiyonları

12.3   Katarlar Üzerinde İşlem Yapan Standart G/Ç Fonksiyonları printf() ve scanf() fonksiyonları diğer tiplerde olduğu gibi formatlı okuma/yazma amaçlı kullanılır. Katar formatı %s dir. Örneğin:

  satırları ile klavyeden okunan katarın ilk 20 karakteri ekrana yazdırlabilir. Burada printf() fonksiyonu:

şeklinde de kullanılabir. Bu durumda, katar ekrana yazdırılır fakat imlec (cursor) bir alt satıra geçmez. gets() fonksiyonu klavyeden karakter dizisi almakta 

Devamını Oku…

12.2 Katarlara Başlangıç Değeri Atama

12.2   Katarlara Başlangıç Değeri Atama Diğer dizi bildirimlerinde olduğu gibi, karakter dizilerine başlangıç değeri verilebilir. Örneğin aşağıda verilen iki bildirim aynı anlamdadır:

  Birinci satırdaki bildirimde ‘\0’ (NULL) sonlandırıcı karakter dizisinin sonlandığını gösterir. Daha önce de bahsedildiği gibi sonlandırıcı karakter, karakter dizileri üzerinde işlemlerin hızlı ve etkin bir biçimde yapılabilmesine olanak sağlar. İkinci bildirimde buna 

Devamını Oku…

12.1 Katar Bildirimi (katar = karakter topluluğu = karakter dizisi = sözce = sicim)

Türkçe yazılan C kitaplarda, ingilizce string kelimesi yerine aşağıdaki ifadelerden biri karşılaşılabilir:   katar = karakter topluluğu = karakter dizisi = sözce = sicim Anlatımda, katar terimini kullanacağız. 12.1   Katar Bildirimi Katarlar, char tipinde bildirilen karakter dizileridir ve harfler, rakamlar, veya bazı sembolleriden oluşur. C dilinde katar bildirimi için bir tip deyimi yoktur. Bu yüzden, bir katara bir dizi veya 

Devamını Oku…

11.9 void Tipindeki Göstericiler

11.9   void Tipindeki Göstericiler void göstericiler herhangi bir veri tipine ait olmayan göstericilerdir. Bu özelliğinden dolayı, void gösterici genel gösterici (generic pointer) olarak da adlandırılır. void göstericiler, void anahtar sözcüğü ile bildirilir. Örneğin:

gibi. void göstericiler yalnızca adres saklamak için kullanılır. Bu yüzden diğer göstericiler arasında atama işlemlerinde kullanılabilir. Örneğin aşağıdaki atamada derleyici bir uyarı veya hata mesajı vermez:

  Program 

Devamını Oku…

11.8 NULL Gösterici

11.8   NULL Gösterici Bir göstericinin bellekte herhangi bir adresi göstermesi, veya öncden göstermiş olduğu adres iptal edilmesi istemirse NULL sabiti kullanılır. Bu sabit derleyicide ASCII karakter tablosunun ilk karakteridir ve ‘\0’ ile sembolize edilir.

 

11.7 Fonksiyon Göstericileri

11.7   Fonksiyon Göstericileri Fonksiyon göstericileri, gösterici (pointer) kavramının gücünü gösterin diğer bir uygulama alanıdır. Dizilerde olduğu gibi, fonksiyon adları da sabit göstericidir. Fonksiyon betiğinin (kodlarının) bellekte bir adreste tutulduğu şeklinde düşünebiliriz. Fonksiyon göstericisi basit olarak fonksiyon adının saklandığı bellek adresini tutan bir göstericidir.Fonksiyon göstericileri sayesinde fonksiyonlar başka fonksiyonlara parametre olarak aktarılabilmektedir. Fonksiyon adının bellete yer 

Devamını Oku…