Dizi ve İşaretçi Arasındaki Fark

İçindekiler:

Anonim

NS asıl fark dizi ve işaretçi arasında bir dizi, aynı veri türündeki öğelerin bir koleksiyonunu depolayan bir veri yapısıdır, işaretçi ise bilgisayar belleğinde başka bir değişkenin adresini tutan bir değişkendir.

Dizi ve işaretçi, C ve C++ gibi programlama dillerinde kullanılan iki kavramdır. Dizi, aynı veri türünden sabit sayıda değeri tutan bir veri topluluğudur. Örneğin, 10 öğrencinin notunu saklamak için programcı 10 tamsayı depolayabilen bir dizi oluşturabilir. Öte yandan, bir işaretçi, başka bir değişkenin adresini tutan bir değişkendir. İşaretçiler, belleğe erişmeye ve bellek adreslerini değiştirmeye yardımcı olur.

Dizi, İşaretçi

Dizi nedir

Dizi, aynı türden sabit sayıda öğeyi depolayan bir veri yapısıdır. Dizinin tüm öğeleri bitişik bellek konumlarındadır.

Şekil 1: Dizi

50 tamsayı değerlerini saklamanız gerektiğini varsayalım. Her tamsayı için değişken oluşturmak mümkündür ancak bu daha zordur ve daha fazla zaman alır. Bu sorunun üstesinden gelmek için bir dizi kullanılabilir.

int sayılar[50];

Yukarıdaki ifade, elli tamsayı depolayabilen, sayılar adlı bir dizi tahsis edecektir. Dizinin belirli bir öğesi, dizin kullanılarak değerlendirilebilir. Başlangıç ​​indeksi 0'dır. Dizide 50 eleman olduğu için son eleman 49 indeksine sahiptir.

sayılar[1] = 30;

Yukarıdaki ifade, 1'e 30 değerini atayacaktır.NS sayılar dizisinin dizini.

Örneğin, çift ortalama[10]; ortalama adlı bir dizi oluşturacaktır. 10 adet çift değer saklayabilir.

Bir dizi oluşturmak daha kolaydır ve öğelere erişmek daha kolaydır. Öte yandan, bir dizinin sabit bir boyutu vardır. Dizi boyutu 10 ise, 20 öğeyi depolamak için kullanılamaz. Başka bir deyişle, bir dizi için bellek tahsisi statiktir.

İşaretçi nedir

Değişken, bir değeri saklamak için bir bellek konumudur. Her hafıza konumunun onu tanımlayacak bir adresi vardır.

Şekil 2: İşaretçi

İşaretçi, başka bir değişkenin adresini saklayan bir değişkendir. İşaretçi, bir değişken adresi saklamadan önce bildirilir. Yıldız işareti * bir işaretçi bildirmek için kullanılır.

int *ptr;

ptr, bir tamsayı değişkenine bir işaretçidir.

çift ​​*ptr1;

ptr1, bir çift değişkene işaretçidir. Aşağıdaki koda bakın.

Şekil 3: İşaretçilerle Programlama

'a' değişkeni 20 değerini içerir. ptr, bir tamsayı için bir işaretçidir. 8. satırda, ptr, a değişkeninin adresiyle atanır. Şimdi ptr a'yı işaret ediyor. Bu nedenle, ptr ile gösterilen değeri yazdırmak, a değerini verecektir.

Atanacak bir adres yoksa, işaretçiye NULL değeri atanabilir. Bu tür işaretçiye boş işaretçi denir.

int *ptr = NULL;

Dizi ve İşaretçi Arasındaki İlişki

Aşağıdaki programa bakın.

Şekil 4: İşaretçili Diziler

arr adında bir dizi var. 5 tamsayı içerir. ptr bir tamsayı için bir işaretçidir. 8. satırda arr, ptr'ye atanır. Bu nedenle, ptr dizinin 0. dizin öğesini işaret ediyor. ptr değerini yazdırmak 0 değerini görüntülerNS dizin öğesi. 10'dur.

Dizi ve İşaretçi Arasındaki Fark

Tanım

Dizi, her biri dizi dizini tarafından tanımlanan bir öğeler koleksiyonundan oluşan bir veri yapısıdır. İşaretçi, bilgisayar belleğinde bulunan başka bir değerin bellek adresini saklayan bir programlama dili nesnesidir.

temel

Bir dizi, bir dizi veri elemanına atıfta bulunurken, bir işaretçi, başka bir bellek konumuna işaret eden bir değişkendir.

Sözdizimi

Dizi sözdizimi – veri türü diziAdı [veri türü];

İşaretçi sözdizimi – veri türü * değişken_adı;

kullanım

Diziler sabit boyutlu bellek (statik bellek) tahsis etmek için kullanılabilse de, dinamik bellek tahsisi için işaretçiler kullanılabilir.

Çözüm

Dizi ve işaretçi terimleri iki programlama kavramıdır. Dizi ve işaretçi arasındaki fark, bir dizinin aynı veri türündeki öğelerin bir koleksiyonunu depolayan bir veri yapısı iken, işaretçi bilgisayar belleğinde başka bir değişkenin adresini tutan bir değişkendir.

Referans:

1. "C'deki Diziler." Www.tutorialspoint.com, Tutorials Point, Buradan ulaşabilirsiniz.2. "C'deki İşaretçiler." Www.tutorialspoint.com, Eğitim Noktası, Buradan ulaşabilirsiniz.

Görünüm inceliği:

1. "CPT-programlama-dizisi" Pluke tarafından - Commons Wikimedia2 aracılığıyla kendi çalışmanız (CC0). "İşaretçiler" Tarafından Bu dosya Kullanıcı tarafından yapılmıştır: SvenTranslation Commons Wikimedia aracılığıyla Kendi çalışması (CC BY-SA 3.0)

Dizi ve İşaretçi Arasındaki Fark