İfade bir type name[count]işlevde yazılırsa, C derleyicisine yığın çerçeve sizeof(type)*countbaytlarına tahsis etmesini ve dizideki ilk öğenin adresini hesaplamasını söylersiniz .
İfade type name[count]tüm işlev ve yapı tanımlarının dışında yazılırsa, C derleyicisine veri segmenti sizeof(type)*countbaytlarına tahsis etmesini ve dizideki ilk öğenin adresini hesaplamasını söylersiniz .
nameaslında dizideki ilk öğenin adresini saklayan sabit bir nesnedir ve bir hafızanın adresini saklayan her nesneye işaretçi denir, bu yüzden namedizi yerine işaretçi olarak davranmanızın nedeni budur . C'deki dizilere yalnızca işaretçilerle erişilebildiğini unutmayın.
Eğer countsıfır değerlendirir daha sonra yığın çerçevesi ya da veri bölümü ya da sıfır bayt tahsis ve dizideki ilk elemanın adresini geri C derleyici anlatmak bir sabit ifadesidir, ancak bu durumu ile ilgili sorun, ilk eleman uzunlukta bir dizi mevcut değildir ve var olmayan bir şeyin adresini hesaplayamazsınız.
Bu rasyoneldir, o element no. -length dizisinde count+1mevcut değil count, bu nedenle C derleyicisinin sıfır uzunluklu diziyi bir işlevin içinde ve dışında değişken olarak tanımlamasını yasaklamasının nedeni budur, çünkü nameo zaman içeriği nedir? nameTam olarak hangi adres saklanıyor?
Eğer pbir işaretçidir daha sonra ifade p[n]eşdeğerdir*(p + n)
Sağ ifadede * yıldızı vasıtaları tarafından işaret belleğe erişim ibrenin KQUEUE operasyonu olduğunda p + nAdresinde depolanan bellek veya erişim p + n, p + nişaretçi ifadesidir, bu adresini alır pve bu adrese sayı ekler nçarpın işaretçinin türünün boyutu p.
Adres ve numara eklemek mümkün mü?
Evet mümkündür, çünkü adres onaltılık gösterimde yaygın olarak temsil edilen işaretsiz tam sayıdır.