שפת C/פעולות חשבוניות: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה |
אין תקציר עריכה |
||
שורה 96:
</div>
==הגדלה עצמית והקטנה עצמית==
===
נניח שאנו רוצים לקדם את x ב1. כבר ראינו שאפשר לרשום זאת כך:
<div style="text-align:left; direction:ltr;">
שורה 110:
</pre>
</div>
כשנגיע ל[[שפת C/תנאים ולולאות#לולאות|לולאות]], נראה
<div style="text-align:left; direction:ltr;">
<pre>
שורה 122:
</pre>
</div>
(נעמוד על ההבדלים בין שתי הצורות ב[[שפת C/פעולות חשבוניות#
===
באותו אופן
<div style="text-align:left; direction:ltr;">
<pre>
שורה 138:
</pre>
</div>
===
לעתים, קיים ביטוי בו משתנה הן מקודם והן מוערך. נניח, לדוגמה, שx מכיל את הערך 3, ונתבונן בשורה:
<div style="text-align:left; direction:ltr;">
שורה 148:
* x מקודם ב1
* z מקבל ערך כלשהו
השאלה היא, אבל, מה קודם למה. אם קודם x מקודם, אז בסיום השורה, z יכיל את הערך 4. מצד שני, אם קודם z מקבל ערך, אז בסיום השורה, z יכיל את הערך 3 (כי x קודם ל4 רק אחרי שz קיבל את ערכו הקודם). לצורך כך מכילה שפת C הן
<div style="text-align:left; direction:ltr;">
<pre>
שורה 154:
</pre>
</div>
היא הערך את x ורק אז קדם אותו. לעומת זאת, משמעות
<div style="text-align:left; direction:ltr;">
<pre>
שורה 160:
</pre>
</div>
היא קדם את x והערך את התוצאה. הדבר דומה
<div style="text-align:left; direction:ltr;">
<pre>
שורה 166:
</pre>
</div>
לעומת
(pre-decrement)
<div style="text-align:left; direction:ltr;">
|