עבור לתוכן

איך מגדירים פונקציה המקבלת שני מספרים של&#1502

Featured Replies

פורסם

בעזרת פוינטרים?

(ומקסימום בעזרת INCLUDE <IOSTREAM>ׂׂ) י

פורסם
void swap( int *a, int *b )
{
int temp;

temp = *a;
*a = *b;
*b = temp;
}

פורסם
  • מחבר

void swap( int *a, int *b )
{
int temp;

temp = *a;
*a = *b;
*b = temp;
}

אבל היא לא מקבל 2 מספרים שלמים...היא מקבלת 2 מצביעים...

פורסם

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

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

void main( void )
{
int x = 10;
int y = 20;

swap( &x, &y );
}

פורסם
  • מחבר

הבנתי את הסברך. ואם כן, הפונקציה מקבלת 2 מצביעים למספרים שלמים ולא מספרים שלמים. ואני לא בטוח שזה בסדר...כי אני צריך פונקציה המקבלת 2 מספרים שלמים

פורסם

לדעתי, זה באמת כמו שנכתב כאן...... זה מקבל מצביעים למספרים שלמים...... אין דרך יותר טובה להחליף בין שני מספרים..... רק ע"י שליחת פויינטרים...

אלא אם אתה רוצה לעשות:


<?asm
{
xchg a,b
}

אם אני לא טועה, זה הקוד להכנסת פקודות אסמבלר.... זאת פקודה שמחליפה בין משתנים..... אבל אני לא בטוח בקשר לתחביר.........

פורסם

די טפשי ולא עובד.

אתה עדיין משנה את המשתנים ב- stack frame הנוכחי ולא את המשתנים ששהעברת לפונקציה.

פורסם
  • מחבר

זו כנראה התשובה:

void swap (int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}

פורסם

פעם הבאה כדאי שתגיד באיזה שפה הפתרון הדרוש (אנשים חשבו פה C ולא C++).

פורסם

אז אתה משתמש ב- references. זה לא באמת שונה משימוש במצביעים.

נו, מילא, כבר מזמן ויתרתי על ההיגיון שזה נוגע למורים.

פורסם
  • מחבר

מסכים בהחלט...מורים זה עם!!

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

פורסם

בעזרת פוינטרים?

אמרת שאתה מעוניין במצביעים, לא בהפניות.

פורסם
  • מחבר

אמרת שאתה מעוניין במצביעים, לא בהפניות.

אתה צודק...אני חייב לבדוק את פשר השאלה הזו מול המורה

ארכיון

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

דיונים חדשים