עבור לתוכן
  • צור חשבון
  • מי אנחנו?

    שלום אורח/ת!

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

    החברים שלנו נהנים מיתרונות רבים, כולל היכולת להשתתף בדיונים, להנות מהגרלות ומבצעים לחברי האתר, ולקבל מידי שבוע את התכנים הבולטים שלנו ישירות במייל.

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

ronen062013

שפת c - סדר קדימויות

Recommended Posts

אם אופרטורים ++ ואפילו  && קודמים ל || אז למה בתכנית הבאה הביטויים סביב && כלל לא רצים והתשובה מתקבלת רק מאגף שמאל של הביטוי הארוך?

int i=2, j=2, k=2, m;
m = ++i ||  ++j&&++k;
printf("%d %d %d %d", i, j, k ,m);

            /*answer: 3 2 2 1 */

 

נערך על-ידי ronen062013

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

קדימות של אופרטורים רק אומר שמה שמתבצע לוגית זה:

++i ||  (++j && ++k)

ולא זה:

(++i ||  ++j) && ++k

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

נערך על-ידי etal

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

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

אז למה הבטוי בסוגריים לא מחושב לפני הביטוי מחוץ לסוגריים?

++i ||  (++j && ++k)

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

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

 

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

https://en.wikipedia.org/wiki/Short-circuit_evaluation

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

הצטרפ/י לדיון

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

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.


×
  • צור חדש...
Back to top button
Close
Close