İşAretçi ve Referans Arasındaki Fark | İşaretçi ve Başvuru

Anonim

Anahtar Farkı - İşaretçi ve Başvuru

İşaretçi ve referans arasındaki farkı tartışmaya başlamadan önce, bu iki terimin anlamına kısaca göz atalım. Bir programda, veriler bellek kaplar. Verilerin yürütülme zamanına yerleştirildiği belleğin tam yeri, onlara 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. Diğer bir deyişle, nesnelere dolaylı olarak atıfta bulunmak için işaretçiler ve referanslar kullanılabilir. Esas olarak bellek adreslerini değerleridir. İşaretçi ve referans arasındaki anahtar farkı , bir işaretçi, başka bir değişkenin bellek konumunun adresini saklarken, bir referansının atıf yapan bir değişkendir olduğu bir değişkendir. başka bir değişkene. İki mekanizma, işaretçi ve başvuru, farklı sözdizimi ve kullanım 'a sahiptir. İşaretçi Nedir?

İşaretçi,

değerinin bellek adresini bilgisayar belleğine depolayan bir programlama dili nesnesidir.

C ++ sözdiziminde; int i = 5; int * ptr = & i;

İlk satır, 5 değeriyle başlatılan bir değişkeni tanımlar. İkinci satır, değişkenin bellek adresine bir işaretçi tanımlar. Burada, 'ptr' ilk değeri i nesnesinin adresi olan 'int to pointer' türünde bir nesne olarak ilan edilmiştir. Aslında ptr değişkeni, bellek adresini depolayarak i'yi işaret eder.

Bellek konumunda depolanan değeri elde etmek için

ek 参照

denir. İşaretçiyi ayırmak için * operatörü kullanılır. Bildirimler yapıldıktan sonra dolaylı ifade * ptr, ptr'yi i'ye atıfta bulunmak için çıkarır.

i'nin değerini değiştirmek için, aşağıdaki atama kullanılabilir; * ptr = 20; İşaretçiler farklı nesneleri de ifade etmek için yeniden atanabilir.

boş gösterici

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

İşaretçiler, dinamik olarak ayrılmış belleğin adreslerini saklamak ve yönetmek için kullanılabilir olabilir. Yığınlar, kuyruklar ve listeler gibi veri yapılarının uygulanması ve denetimi işaretçilerin kullanılmasıyla verimli hale getirilebilir. Örneğin, bir sıranın iki işaretçi olabilir; kafa işaretçisi ve kuyruk işaretçisi.İşaretçiler, değişkenlerin adreslerine göre geçirilmesi için de kullanılabilir; bu da değerin değiştirilmesini sağlar. Bellek veya bellek eşlemeli aygıtları doğrudan kullanma, işaretçiler kullanarak de gerçekleştirilebilir.

İşaretçiler, ele alınan belleğe hem korumalı hem de korunmasız erişime izin verir. Bu nedenle, işaretçinin içeriğinin geçerli olduğunu doğrulamak için gerekli tedbirlerin alınması gerekir. Aksi takdirde, bir işaretçiyi geçersiz bir bellek adresiyle tersine çevirmek, programın çökmesine neden olabilir. İşaretçiler, C, C ++, Pascal ve birçok montaj dili gibi dillerde desteklenir. İşaretçi

a

değişkeniyle ilişkili bellek adresini işaret eder. B. Referans Nedir? Referans, bellekte saklanan bir değer için alternatif bir tanımlayıcıdır. Bir programın belirli bir referans noktasına dolaylı olarak erişmesini sağlar.

C ++ sözdiziminde;

int i = 5; int & ref = i;

İlk satır 5 değeriyle başlatılan bir değişkeni tanımlar. İkinci satır, 'ref' öğesini i'ye atıfta bulunan 'int başvuru' türünde bir nesne olarak bildirir. Referans, verinin belleğe depolanmış belirli bir datumun fiziksel adresi olarak uygulanması nedeniyle veriden farklıdır.

Bir kez tanımlandıktan sonra, bir referans yeni bir değere yeniden atanamaz. Bir referans her zaman başlatıldığı nesneye karşılık gelir. Aşağıdaki atamada, ref hala i'ye karşılık gelir, ancak değer şimdi 20'dir.

ref = 20; Yukarıdaki örneğe göre, atıfları tersine çevirme hiçbir operatör gerektirmez.

Referanslar, bir değişken her zaman bir nesneye karşılık geldiğinde kullanılabilir. Bunun nedeni, işaretçilerin aksine, başvurular boş olamaz ve her zaman başlatmada atanmalıdır. Referanslar daima bir nesneye atıfta bulunulduğundan, böyle bir değişkeni bir referans yapmak, programın verimli ve doğru bir şekilde çalışmasını sağlar. Verilen bir boş başvuru yok, bir başvuru değişkeninin geçerliliği sınanması gerekmiyor.

Referans değişkenleri, prosedürlerine argümanlar olarak büyük verilerin etkili bir şekilde aktarılması için kullanılabilir. Kaynaklar, farklı kod alanları arasında büyük verilerin paylaşılmasında da kullanılır, çünkü her kod verilere bir referans tutar.

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

İşaretçi ve Referans arasındaki fark nedir?

İşaretçi ve Referansın Tanımı İşaretçi: İşaretçi, işlem belleğinde saklanan bir nesnenin bellek adresidir.

Referans:

Referans, bir nesnenin alternatif tanımlayıcısı ya da takma adıdır.

İşaretçi ve Başvurunun Özellikleri

Beyanı İşaretçi:

İşaretçi * işleci ile bildirilir. Referans:

Bir referans, & operatörü ile beyan edilmiştir.

Beyin Tartışması

İşaretçi: İşaretçi değişkeni, * operatörünün atıf yapılmasını gerektirir.

Referans: Referans değişkeni, herhangi bir operatörün atıf yapılmasını gerektirmez.

Başlatma

İşaretçi: İşaretçiler boşa başlatılabilir.Bu değişkenlere boş işaretçiler denir.

Referans: Referanslar boşa başlatılamaz. Boş bir referans diye bir şey yoktur. Referans her zaman bir nesneye işaret etmelidir.

Yeniden Atamalar

İşaretçi: Bir işaretçi değişkeni farklı nesneleri görmek için yeniden atanabilir.

Referans: Bir referans değişkeni yeniden atanamaz. Her zaman başlatıldığı nesneye atıfta bulunur.

Kullanım

İşaretçi: İşaretçi değişkenleri, hiçbir şeye atıf yapılma ihtimali veya farklı zamanlarda farklı şeylere atıfta bulunulması gerektiğinde kullanılmalıdır.

Referans: Referans değişkenleri, her zaman başvurulacak bir nesne olduğunda ve bu referans değişkeninin, o nesne dışındaki başka herhangi bir şeye atıf yapmak için gerekli olmadığı durumlarda kullanılmalıdır.

Kullanımın Uygulanması

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

Referans: Referans değişkenleri işlev parametrelerinde kullanılabilir ve geri dönüş türleri yararlı arabirimleri tanımlar.

Kullanılan diller:

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

Referans: C ++, Java, Python, Perl, PHP, Ruby vb. Programlama dilleri referansları destekler.

Görüntü Nezami: "İşaretçiler" Bu dosyayı Kullanıcı: SvenTranslation tarafından yapılmıştır. Kendi işi. Bu vektör görüntüsü Inkscape ile oluşturuldu. (CC BY-SA 3. 0) Commons aracılığıyla -