עבור לתוכן

מצביעים ב-C

Featured Replies

פורסם

כתבתי פונקציה.. ואחרי שאני עושה קומפילציה הוא אומר שמשהו לא טובה במשפט הבא:

(q+J) = *(p+i)

הפונקציה:

void Hipoh(int *a)

{

int b[N];

int *p, *q;

int i, J;

q=b;

p=a;

for(i=(N-1),J=0; i>=0; i--, J++)

{

(q+J) = *(p+i);

}

Print_a(&(*b));

}

מה הבעיה? =\

פורסם

אתה לא יכול לבצע השמה לתוך q+J.

לא ברור לי מה התכוונת לעשות.

פורסם
  • מחבר

להפוך את מערך a ולשמור במערך b

ז"א אם מערך a

1 3 5 6

אז מערך b

6 5 3 1

פורסם

אז השורה שצריכה להיות

*(q+J) = *(p+i)

מה שלא הבנתי הוא למה את מסתבכת כל כך עם מצביעים. היית יכולה לכתוב ככה:

q[J] = p[i]

והקוד היה עושה בדיוק אותו דבר.

אותו דבר גם בסוף - השורה שכתבת שקולה ל-

Print_a(b);

פורסם
  • מחבר

אני מנסה ללמוד מצביעים... בדרך הקלה אני כבר יודעת לעשות עוד כשלמדתי פסקל...

ותודה :)))

והשורה האחרונה שרשמתי היא בסדר

פורסם

היא תעבוד, זה פשוט מיותר (* ו-& הן פעולות הפוכות זו לזו).

פורסם
  • מחבר

היא תעבוד, זה פשוט מיותר (* ו-& הן פעולות הפוכות זו לזו).

צודק, תודה :]

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים