-
iOS Eğitimlerine Başlarken...
-
Objective-C Dilinde Kütüphaneler
-
Objective-C'de Sınıf Arayüzü (Class Interface) Nasıl Tanımlanır?
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Sabitlerden Oluşan İfadeler
-
int Türü İfadeler
-
float Türündeki İfadeler
-
Gösterge İfadeleri
-
Gösterge İfadeleri ve Değerleri
-
Operatörlerin Öncelikleri ve Birleşme Sıraları
-
İkili Aritmetiksel Operatörler
-
Aritmetiksel Atama Operatörleri
-
İlişkisel Operatörler
-
Mantıksal Operatörler
-
Bit Düzeyinde İşlem Gören Operatörler
-
Öteleme Operatörleri
-
Bit Düzeyinde Mantıksal Operatörler
-
Bit Düzeyinde İşlem İçin Bir Örnek: Sınav Değerlendirme Programı
-
Bit Düzeyinde Atama Operatörleri
-
Cast Operatörü
-
sizeof Operatörü ve Bir Örnek Program
-
Tekli Operatörler
-
Koşul Operatörü
-
Bellek Operatörleri
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Kontrol Yapıları
-
Döngü (Loop) Oluşturma
-
Miras Alma (Inheritance), Çok Biçimlilik
-
Ön İşlemci Komutları ve Makrolar
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Basit Makro Tanımları
-
Objective-C Ön İşlemcisi
-
Makrolarda Argümanlar
-
Önceden Tanımlanmış Değerlere Referans Verme
-
Gerçek Parametrelerde Bir Dizi İfadenin Kullanılması
-
Makro Tanımlamada # ve ## Operatörleri
-
Makro Tanımın İptal Edilmesi: undef Komutu
-
Dosya İçeriklerini Programa Katma: include Komutu
-
Şarta Bağlı Derleme İşlemi: #if Komutu
-
#ifdef Komutu
-
#ifndef Komutu
-
#error ve #pragma Direktifleri
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Diziler ve Sözlük Nesneleri
-
Diziler ve Sözlük Nesneleri Giriş
-
Bir Dizi Nesnesi Oluşturmak
-
Dizideki Eleman Sayısını Bulmak
-
Bir Dizi Nesnesinin Elemanlarına Erişme
-
Dizi Elemanlarına Hızlı Numaralama (Fast Enumeration) Yöntemi ile Erişmek
-
Dizi Nesnesine Eleman Eklemek
-
Dizi Nesnesinde Araya Eleman Ekleme
-
Dizi Nesnesinin Bazı Elemanlarını Silme
-
Dizi Nesnelerini Sıralama
-
Diziler ve Sözlük Nesneleri Giriş
-
Fonksiyonlar
-
Fonksiyonlar Giriş
-
Objective C Dilinde Bir Fonksiyonun Yapısı
-
Fonksiyonların Tanımlanması
-
Fonksiyonlarla İlişkili Terimler
-
return Deyimi
-
Fonksiyon Çağrıları ile İlgili Örnek C Programları
-
Fonksiyon Çağırma Teknikleri
-
Fonksiyonları Değer ile Çağırma
-
Fonksiyonları Referans ile Çağırma
-
İki Boyutlu Dizinin Argüman Olarak Gönderilmesi
-
C Dilinde Özyineli (Rekürsif) Fonksiyonlar
-
Fonksiyonlar Giriş
-
Dinamik Bağlama, id Veri Tipi
-
Bellek Sınıfları
-
Dosya İşlemleri
-
Nesne Yönelimli Programlama
-
Algoritmaya Giriş
static bellek sınıfından bir değişken, bir fonksiyonun içinde ya da dışında tanımlanabilir. Static bellek sınıfındaki değişkenler ancak static sözcüğü ile ayırt edilebilirler o nedenle bildirimde bu sözcüğün kullanılması zorunludur. Static sınıfındaki bir değişken programın tüm icrası süresince geçerliliğini korur. O nedenle bir fonksiyon içinde tanımlanmış olsa bile fonksiyon terkedilince değerini kaybetmez.
Static tipi bir değişkene eş zamanlı olarak birden fazla yerde bildirim yapılmışsa bu değişkene bellekte bir kez yer ayrılır ve bu esnada bir kez ilk değer ataması yapılır. static sınıfı bir değişken için bildirimde bulunulmuş fakat ilk değer ataması yapılmamışsa bu durumda ilk değer olarak 0 değeri atanacaktır. static sınıfından bir değişkene, bir programın icrası süresince bellekte yer ayrılır.
STATIC SINIFI İLE İLİŞKİLİ C PROGRAMI:
#include "conio.h"
#import <Foundation/Foundation.h>
int main(int argc,char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
float kare(float x);
float say;
char cevap;
do
{
NSLog(@"\nBİR SAYI GİRİNİZ..");
scanf("%f",&say);
NSLog(@"\nSAYINIZIN KARESİ=%12.3f",kare(say));
NSLog(@"\nDEVAM e/h ");
cevap=getche();
}
while(cevap=='e'||cevap=='E');
[pool drain];
return 0;
}
float kare(float a)
{
static int sayac=0;
sayac++;
NSLog(@"\nÇAĞRI SAYISI=%i",sayac);
return a*a;
}
PROGRAMIN ÇIKTISI:
BİR SAYI GİRİNİZ..4
ÇAĞRI SAYISI=1
SAYINIZIN KARESİ=16.000
DEVAM e/h e
BİR SAYI GİRİNİZ..5
ÇAĞRI SAYISI=2
SAYINIZIN KARESİ=25.000
DEVAM e/h e
BİR SAYI GİRİNİZ..7
ÇAĞRI SAYISI=3
SAYINIZIN KARESİ=49.000
DEVAM e/h h
AÇIKLAMA:
Kare adlı fonksiyon içindeki sayac adlı değişken static türde tanımlandığı için, programın icra süresi boyunca değerini saklayacak ve sadece 1 kez ilk değer ataması yapılacaktır.
O nedenle sayac adlı değişken başlangıçta bir kez sıfırlanır ve sonra kare adlı fonksiyonun her çağrılışında önceki değerini sakladığı için önceki değerine 1 eklenerek sayma işlevini yerine getirir. Böylece, main fonksiyonu içinden kare adlı fonksiyonun kaç kez çağrıldığını sayac adlı değişken yardımı ile izleyebiliriz.
Öte yandan, sayac adlı değişken, kare adlı fonksiyon içinde tanımlandığı için sadece bu fonksiyon içinde geçerlidir; programın diğer kısımlarınca tanınmayacaktır.
auto ve static türde tanımlanmış olan değişkenler, sadece,kendilerini “içeren blok” içinde geçerlidirler. Bu nedenle, aynı isimli fakat gerçekte farklı değişkenler olarak dikkate alınan değişkenler, çeşitli fonksiyonlar içinde görünebilirler. Örneğin, sayac isimli değişken başka bir fonksiyon içinde de auto veya static tipte tanımlanmış olsa idi, bu sayac’ın, kare fonksiyonundaki sayac ile bir ilişkisi olmazdı ve ayrı bir değişken olarak kabul edilirdi.