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
İş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
(Ya da ihmal) kullanmak için zaman var...
Ref vs kullanmak için zaman...
Vanilya JavaScript vs kullanmak için n...
div ne zaman bir eylemi tetiklemek içi...
UİView'ne kullanmak için zaman çe...