19-01-2009, 23:29
|
|
|
|
חבר מתאריך: 21.12.04
הודעות: 30,021
|
|
הסימון & מציין 'כתובת'.
הסימון * מציין משתנה מסוג מצביע.
הכלל אומר שמצביע תמיד שווה לכתובת:
קוד PHP:
int Var = 5; int* Pointer = &Var;
המשמעות היא שלמשתנה "Var" יש כתובת מסויימת, והמצביע Pointer מצביע לאותה הכתובת. זאת אומרת, שאם עכשיו ניגש לערך ש Pointer מצביע עליו - נגיע למעשה לערך של Var.
במקרה הזה, נשנה את הערך של Var מ-5 ל-6.
מתי נשתמש ב "&" בפונקציה?
למשל, כשנרצה לשלוח את הכתובת של משתנה מסויים (מבלי ליצור מצביע במיוחד להעברה הזו:
קוד PHP:
int main() { int x; func1 (&x); }
void func1 (int* X) { X++; }
בדוגמא הזו, שלחנו את הכתובת של x לפונקציה, שינינו את הערך של x, וכשנצא מהפונקציה, x עדיין יחזיק את הערך החדש שלו (x אינו משתנה מקומי של הפונקציה func1 אלא משתנה מקומי של הפונקציה main. המשתנה המקומי היחיד שיש בפונקציה func1 הוא X והוא מצביע מסוג int, אשר מקבל את הכתובת של x המקורי מה-main).
|