SORU
8 Mayıs 2010, CUMARTESİ


Nasıl işlevi bir işaretçi kaldırma olur mu?

Neden ve nasıl kaldırma fonksiyonu sadece işaretçi "hiçbir şey"?

Bu bahsettiğim şey

#include<stdio.h>

void hello() { printf("hello"); }

int main(void) { 
    (*****hello)(); 
}

here: bir yorum

işlev işaretçileri sadece inceleyebilirsiniz tamam ama sonuçta işlevi göstergesi hemen olacak bir işlev işaretçisi için geri dönüştürülmüş


Ve bir cevap here:

Kaldırma (telefon) işlevin işaretçisi anlamı: erişim KODU bir VERİ olurdu. bellek.

İşlev işaretçisi olmaması gerekiyordu bu şekilde başvuru yapıldı. Bunun yerine, denir.

Adı "" yan inceleyebilirsiniz kullanırdım yanında"". ara ile TAMAM.

Neyse: C böyle bir şekilde tasarlanmıştır her iki işlev adı tanımlayıcısı sıra değişken tutma işlevi. işaretçi aynı anlama gelir: KOD için adres bellek. Ve o atlamak için izin verir aramayı kullanarak bellek () ya da sözdizimi tanımlayıcı ya da bir değişken.


Nasıltam olarakişlevi bir işaretçi kaldırma çalışıyor mu?

CEVAP
8 Mayıs 2010, CUMARTESİ


Pek de doğru bir soru değil. C için, en azından, doğru soru

Rvalue bir çerçevede işlev değeri ne olur?

(Bir rvalue içeriği herhangi bir isim veya başka bir referans görünür olması gereken yere kullanılan bir değer yerine bir konum-temelde her yerde dışında Sol tarafta bir görev. Adını kendisi geliyordoğruatama tarafta.)

TAMAM, bu yüzden ne rvalue bir çerçevede işlev bir değer olur? Hemen ve örtülü olarak orijinal fonksiyon değeri için bir işaretçi dönüştürülür. *, O işaretçi çözümlemesi detayları ve örtülü bir işaretçiyle aynı işlevi tekrar değer elde edersiniz. Ve gibi birçok kez istediğiniz gibi yapabilirsiniz.

İki benzer deneyler deneyin

  • Eğer bir işlevi bir işaretçi çözümlemesi ne olurlvaluebağlam-bir atamanın sol tarafı. (Cevabı işlevleri değişmez olduğunu unutmayın eğer beklediğiniz ne hakkında olacak.)

  • Bir dizi değeri de lvalue bağlamda bir işaretçi dönüştürülür, ama bir işaretçi dönüştürülürelemanyazın dizisi için bir işaretçi. Bu nedenle bir öğe verecektir kaldırma, bir dizi değil, ve delilik size göstermek oluşmaz.

Bu yardımcı olur umarım.

P. S. Gibinedenfonksiyon değeri örtülü olarak bir işaretçi dönüştürülür, cevap işlev işaretçileri kullanan kullanmak için &kullanmak için büyük bir kolaylık olduğunu's her yerde. De ikili bir kolaylık var: çağrı pozisyonda bir işlev işaretçisi * işlevi bir işaretçi aramak için yazmak zorunda değilsiniz, böylece otomatik olarak işlev bir değer dönüştürülür.

P. P. S. eğer C fonksiyonları, C fonksiyonları, aşırı yüklü olabilir, ve anlambilim C nasıl çalıştığı hakkında yorum yapmak için nitelikli değilim .

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • Dion Coulls

    Dion Coulls

    16 AĞUSTOS 2006
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011