SORU
19 Ocak 2010, Salı


C işaretçi: işareti kullanmak için zaman ve yıldız?

Sadece öğüt ile başladım ve kafam biraz karışık. & bir değişkenin adresi anlamına gelir ve * işaretçi tarafından işaret edilen nesnenin değerini almak için bir işaretçi değişkeni önünde kullanılabilecek biliyorum. Ama her şey bir değişkenin işaretçi bir kopyasını fonksiyonları aradığın zaman diziler, dizeleri veya çalıştığınız zaman farklı çalışır. Zor bunun içinde bir mantık desen.

& * kullanmalıyım?

CEVAP
19 Ocak 2010, Salı


İşaretçiler ve değerleri vardır:

int* p; // pointer to an integer
int i; // integer value

* ile bir değer haline bir işaretçi devre:

int i2 = *p; // integer value

& ile gösterici bir değer dönüp:

int* p2 = &i; // pointer to an integer

Edit: Diziler halinde, çok fazla işaretçiler gibi muamele görüyorlar. Eğer sen düşünmek onlar gibi işaretçiler olacaksın kullanarak * get değerleri içinde onları yukarıdaki talimatlara, ama orada da bir başka, daha yaygın şekilde kullanılması [] operatör:

int a[2];  // array of integers
int i = *a; // the value of the first element of a
int i2 = a[0]; // another way to get the first element

İkinci elemanı almak için:

int a[2]; // array
int i = *(a   1); // the value of the second element
int i2 = a[1]; // the value of the second element

[] dizin işareti * operatör özel bir şeklidir, ve bu gibi çalışır:

a[i] == *(a   i);  // these two statements are the same thing

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • RealPapaPit

    RealPapaPit

    16 Mart 2009