Dizi, C bir pointer adı mı?
Bir dizi adı C kalemi mi? Bir dizi adı işaretçi değişkeni arasındaki fark nedir?
CEVAP
Bir dizi bir dizi ve bir işaretçi bir işaretçi olduğunu, ancak çoğu durumda dizi isimleridönüştürülmüşişaretçiler. Bir dönem sıklıkla kullanılan onlarçürümeişaretçiler.
Burada bir dizi:
int a[7];
biryedi tamsayılar için boşluk içerir, ve bu gibi bir atama onlara bir değer koyabilirsiniz:
a[3] = 9;
Burada bir işaretçi:
int *p;
ptamsayılar için hiç boşluk yok, ama bir tamsayı için bir alanı işaret edebilir. Örneğin, dizideki yerleri işaret etmek için ayarlayabilirsinizbirilk olarak:
p = &a[0];
Kafa karıştırıcı olabilir ne de bu yazabilirsiniz:
p = a;
Yapardeğildizinin içeriğini kopyalayınbirişaretçipdemek ki her neyse). Bunun yerine, bir dizi adıbirilk öğe için bir işaretçi dönüştürülür. Yani bu atama önceki ile aynı işi yapar.
Şimdi bir dizi benzer şekilde p kullanabilirsiniz:
p[3] = 17;
Bu işleri neden C dizi kaldırma operatör, "[ ]", işaretçiler açısından tanımlanır.x[y]anlamı: işaretçi ile başlarxadımyunsurlar öne işaretçi işaret, ve sonra ne olursa olsun ne sonra. İşaretçi aritmetiği sözdizimi kullanarakx[y]ayrıca olarak yazılabilir*(x-y).
Bu normal bir dizi ile çalışmak için, bizim gibibiradıbir[3]ilk işaretçisi (ilk element için . çevrilmesi gerekir ^strong>bir). O zaman biz 3 elemanları bir adım öne çıkın ve alın. Diğer bir deyişle: dizideki pozisyonu 3 öğe. Diziyi ilk günden beri 0. numaralı dördüncü element olan)
Yani, özetle, bir C programında dizi isimleri (çoğu durumda) işaretçiler dönüştürülür. Bir istisna kullanıyoruzboyutubir dizi operatör. Eğerbirbu Yarışmada bir işaretçi dönüştürüldüboyutu(a)bir işaretçi boyutunu verir ve oldukça işe yaramaz, yani bu durumda olacaktır gerçek bir dizi değilbirdemek dizinin kendisi.
Nasıl Java bir dizi bir dizi yapmak iç...
`Dword pointer ne demek?...
Nasıl dizi boyutu bir (1) mongodb daha...
Nasıl bir ArrayList ilkel int dizi Tam...
Nasıl çok Boyutlu bir Dizi Düzleştirme...