-
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ş
Referans ile çağırma (call by reference) tekniğinde; çağıran program, argüman olarak bir değer yerine bu değere ait bellek adresini (gösterge ile) gönderir. Böylece veri paylaşımı, değerler yerine adresler ile gerçekleştirilir. Bu durumda, argüman ile buna karşılık gelen fonksiyon parametresi aynı bellek alanını kullanır. Bunun doğal sonucu olarak, çağrılan fonksiyonda bu şekilde kullanılan bir parametredeki değişiklik buna karşılık gelen çağıran program argümanına aynen aktarılacaktır.
Aşağıdaki C programında, x, y ve z argümanları yerine bunların adreslerini içeren px, py ve pz gösterge değişkenleri topla_1 fonksiyonu içine gönderilmektedir. Bu durumda px ile a aynı adresi, yani x değişkeninin adresini; py ile b, y değişkeninin adresini ve pz ile c de z değişkeninin adresini taşıyacaklardır. Böylece çağrılan fonksiyon içinde, *a, *b ve *c değerlerinin değiştirilmesi aslında x, y ve z’nin değiştirilmesi anlamına gelecektir.
Referans ile Çağırma Tekniğini Kullanan Objective C Programının Kod Bloğu:
int topla_1(int *a,int *b,int *c);
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int x,y,z,t;
int *px,*py,*pz;
x=1;
y=2;
z=3;
px=&x;
py=&y;
pz=&z;
t=topla_1(px,py,pz);
NSLog(@"\nTOPLAM=%i\n",t);
NSLog(@"\nx=%i",x);
NSLog(@"\ny=%i",y);
NSLog(@"\nz=%d\n\n",z);
}
int topla_1(int *a,int *b,int *c)
{
NSLog(@"\na=%i",*a);
NSLog(@"\nb=%i",*b);
NSLog(@"\nc=%i\n\n",*c);
return (*a+*b+*c);
}
Aşağıdaki tabloda parametrelerle argümanların ilişkisini görüyoruz:
PROGRAMIN ÇIKTISI:
a=1
b=2
c=3
TOPLAM=6
x=1
y=2
z=3
Çağrılan Fonksiyon İçinde Değişiklik Yapılmasıyla İlgili Örnek Kod Bloğu:
int topla_1(int *a,int *b,int *c);
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int x,y,z,t;
int *px,*py,*pz;
x=1;
y=2;
z=3;
px=&x;
py=&y;
pz=&z;
t=topla_1(px,py,pz);
NSLog(@"\nTOPLAM=%i\n",t);
NSLog(@"\nx=%i",x);
NSLog(@"\ny=%i",y);
NSLog(@"\nz=%i\n\n",z);
[pool drain];
return 0;
}
int topla_1(int *a,int *b,int *c)
{
*a=*a-1;
*b=*b-1;
*c=*c-2;
NSLog(@"\na=%i",*a);
NSLog(@"\nb=%i",*b);
NSLog(@"\nc=%i\n\n",*c);
return (*a+*b+*c);
}
Parametre ve argümanların sahip olduğu değerler ise aşağıdaki tabloda verilmiştir:
PROGRAMIN ÇIKTISI:
a=0
b=1
c=1
TOPLAM=2
x=0
y=1
z=1