İşaretçi ve Referans Arasındaki Fark

Temel Fark - İşaretçi ve Referans
 

İşaretçi ve referans arasındaki farkı tartışmadan önce, öncelikle bu iki terimin anlamlarına kısaca bakalım. Bir programda, veri hafızayı işgal eder. Verilere bir yürütme zamanında yerleştirildiği belleğin tam yeri, bunlara erişmek için bilinmelidir. İşaretçi değişkenleri ve referans değişkenleri bu verilere erişmek ve bulundukları bellek adreslerini değiştirmek için kullanılır. Yani, nesnelere dolaylı olarak atıfta bulunmak için hem işaretçiler hem de referanslar kullanılabilir. Aslında bellek adreslerini değerleri olarak tutarlar. temel fark bir işaretçi ve bir referans arasında işaretçi, başka bir değişkenin bellek konumunun adresini depolayan bir değişkendir bir süre başvuru, başka bir değişkene başvuran bir değişkendir. İki mekanizma, Işaretçi ve referans, farklı sözdizimi ve kullanımı var.

İşaretçi nedir?

Bir işaretçi bir değerin bellek adresini depolayan bir programlama dili nesnesi bilgisayar hafızasında.

C ++ sözdiziminde;

int i = 5;

int * ptr = & i;

İlk satır, 5 değeriyle başlayan bir değişkeni tanımlar. İkinci satır, değişkenin bellek adresine bir işaretçi tanımlar. Burada 'ptr', başlangıç ​​değeri i nesnesinin adresi olan 'pointer to int' türünde bir nesne olarak bildirilir. Aslında bellek adresini saklayarak değişken ptr i'yi işaret eder.

Bellek konumunda saklanan değerin elde edilmesi denir dereferencing. * İşleci, işaretçinin referansını kaldırmak için kullanılır. Bildirimler yapıldıktan sonra, i'ye atıfta bulunmak için dolaylı ifade * ptr dereferences ptr ifadesi.

İ değerini değiştirmek için aşağıdaki atama kullanılabilir;

* ptr = 20;

İşaretçiler farklı nesnelere de başvurmak üzere yeniden atanabilir.

bir boş işaretçisi özel bir işaretçi türüdür. Bir boş gösterici genellikle 0 veya null ile gösterilir ve hiçbir şeye işaret etmez. İşaretçiye atanacak tam adrese sahip olmaması durumunda boş bir işaretçi kullanmak iyi bir uygulamadır. Bu atama mantıksal işlemlerde ve koşullarda kullanılabilir.

İşaretçiler olabilir dinamik olarak ayrılmış belleğin adreslerini depolamak ve yönetmek için kullanılır. Yığınlar, kuyruklar ve listeler gibi veri yapılarının uygulanması ve denetlenmesi, işaretçilerin kullanılmasıyla verimli hale getirilebilir. Örneğin, bir kuyrukta iki işaretçi olabilir; baş işaretçi ve kuyruk işaretçi. İşaretçiler de değişkenleri adreslerine göre iletmek için kullanılabilir, bu da değerin değiştirilmesine izin verir. Belleği veya bellek eşlemeli cihazları doğrudan değiştirmek, işaretçiler kullanılarak da işlenebilir.

İşaretçiler, adreslenen belleğe hem korumalı hem de korumasız erişime izin verir. Bu nedenle, bir işaretçinin içeriğinin geçerli olduğunu doğrulamak için gerekli önlemler alınmalıdır. Aksi takdirde, geçersiz bir bellek adresine sahip bir işaretçinin kaydının silinmesi, programın çökmesine neden olabilir.

İşaretçiler C, C ++, Pascal ve birçok montaj dili gibi dillerde desteklenir.

Işaretçi bir değişken ile ilişkilendirilmiş bellek adresini gösteren b.

Referans Nedir?

Bir referans basitçe bir bellekte depolanan bir değer için alternatif tanımlayıcı. Bir programın belirli bir veriye dolaylı olarak erişmesini sağlar.

C ++ sözdiziminde;

int i = 5;

int & ref = ben;

İlk satır, 5 değeriyle başlayan bir değişkeni tanımlar. İkinci satır, 'ref' i 'yi ifade eden' int'e başvuru 'türünde bir nesne olarak bildirir. Bir referansın, hafızada saklanan belirli verilerin fiziksel adresi olarak uygulandığı göz önüne alındığında, verilerin kendisinden farklıdır..

Bir kez tanımlandığında, referans yeni bir değer olarak yeniden atanamaz. Referans her zaman başlatıldığı nesneyi ifade eder. Aşağıdaki atamada, ref hala i'yi ifade ediyor, ancak değer şimdi 20.

ref = 20;

Yukarıdaki örneğe göre, kayıt silme referansları herhangi bir operatör gerektirmez.

Bir değişken her zaman bir nesneye başvurduğunda başvurular kullanılabilir. Bunun nedeni, işaretçilerin aksine başvurular geçersiz olamaz ve her zaman başlatma sırasında atanmaları gerekir. Referanslar her zaman bir nesneye atıfta bulunacağı için, böyle bir değişkenin referans yapılması programın verimli ve doğru çalışmasını sağlar. Boş referans olmadığı göz önüne alındığında, bir referans değişkeninin geçerliliğinin test edilmesi gerekmez.

Referans değişkenler büyük verileri prosedürlere argüman olarak verimli bir şekilde iletmek için kullanılır. Referanslar, her kod verilere bir referans tuttuğundan farklı kod alanları arasında büyük verilerin paylaşılmasında da kullanılır.

C ++, Java, Python, Perl, PHP, Ruby, vb. Gibi programlama dilleri destek referansları.

Pointer ve Reference arasındaki fark nedir?

İşaretçinin Tanımı ve Referans

Işaretçi: İşaretçi, bilgi işlem belleğinde depolanan bir nesnenin bellek adresidir.

Referans: Referans, bir nesne için alternatif bir tanımlayıcı veya bir takma addır.

İşaretçinin Özellikleri ve Referans

deklarasyon

Işaretçi: * İşleciyle bir işaretçi bildirildi.

Referans: & İşleci ile bir referans bildirildi.

dereferencing

Işaretçi: İşaretçi değişkeni * operatörünün kaydının kaldırılmasını gerektirir.

Referans: Referans değişkeni, operatörün sertifikasının kaldırılmasını gerektirmez.

başlatılıyor

Işaretçi:  İşaretçiler null değerine başlatılabilir. Bu değişkenlere null işaretçiler denir.

Referans: Referanslar null değerine başlatılamaz. Boş referans diye bir şey yoktur. Referans her zaman bir nesneye atıfta bulunmalıdır.

görev değişikliği

Işaretçi: Bir işaretçi değişkeni, farklı nesnelere başvurmak üzere yeniden atanabilir.

Referans: Bir referans değişkeni yeniden atanamaz. Her zaman başlatıldığı nesneyi ifade eder.

kullanım

Işaretçi: İşaretçi değişkenler, hiçbir şeye gönderme yapma olasılığı olmadığında veya farklı zamanlarda farklı şeylere gönderme gerektiğinde kullanılmalıdır..

Referans: Referans değişkenleri her zaman başvurulacak bir nesne olduğunda ve bu nesne dışında başka bir şeye başvurmak için bu başvuru değişkenini kullanmanın gerekli olmadığı durumlarda kullanılmalıdır..

Kullanım Uygulaması

Işaretçi: İşaretçi değişkenleri algoritmaları ve veri yapılarını uygulamak için kullanılabilir.

Referans: Referans değişkenler fonksiyon parametrelerinde kullanılabilir ve dönüş tipleri faydalı arayüzleri tanımlar.

Kullanılan diller:

Işaretçi: C, C ++, Pascal gibi programlama dilleri ve birçok montaj dili işaretçileri destekler.

Referans: C ++, Java, Python, Perl, PHP, Ruby, vb. Gibi programlama dilleri destek referansları.

Görüntü Nezaket: Bu dosya tarafından "İşaretçiler" Kullanıcı tarafından yapılmıştır: SvenTranslation.Own çalışma.Bu vektör görüntü Commons aracılığıyla Inkscape. (CC BY-SA 3.0) ile oluşturulmuştur -