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

  • Avast

    Avast

    27 NİSAN 2006
  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006