C ++ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░

C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдп рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдХреНрд╕рд░ рдЗрд╕рдХреА рдШрдЯрдирд╛ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдереЛрдбрд╝реА рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рд▓рд╛рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред

рд▓реЗрдЦ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдорд╛рдирдХ рд╕реЗ рдХрдИ рд▓реЗрдЦреЛрдВ рдФрд░ рдЕрд░реНрдХ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред

"рдЕрдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ" рдХреНрдпрд╛ рд╣реИрдВ?

рдорд╛рдирдХ рдХрд╣рддреЗ рд╣реИрдВ:
рдЕрдиреБрдХреНрд░рдо рдЕрдВрдХ (рдЕрдиреБрдХреНрд░рдо рдЕрдВрдХ) - рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдРрд╕реЗ рдмрд┐рдВрджреБ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЛрдб рдХреЗ рд╕рднреА рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП рд╣реИрдВ, рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдЕрднреА рддрдХ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред (┬з1.9 / 7)


рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕? "рджреБрд╖реНрдкреНрд░рднрд╛рд╡" рдХреНрдпрд╛ рд╣реИрдВ?

рдПрдХ рдкрдХреНрд╖ рдкреНрд░рднрд╛рд╡ (рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдПрдХ рдЕрд╕реНрдерд┐рд░ рд╡рд╕реНрддреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ, рд╡рд╕реНрддреБ рдХреЛ рдмрджрд▓рдиреЗ, рдЖрдИ / рдУ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдпрд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдХ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд░рдирдЯрд╛рдЗрдо рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реИред

рдХреБрдЫ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрддреА рд╣реИред рдпрджрд┐, рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

int x = y++; // ┬лy┬╗  int 


рдЪрд░ "x" рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, ++ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рдХрд╛рд░рдг рдЪрд░ "y" рдХрд╛ рдореВрд▓реНрдп рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рдЦреИрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдЖрдЧреЗред рд╕реНрдЯреАрд╡ рдкрд╛рд╕ ("рдкреНрд░рд╢реНрди рдФрд░ рдЙрддреНрддрд░ рдореЗрдВ рднрд╛рд╖рд╛ рд╕реА", рдмреНрд▓реЙрдЧ "comp.lang.c") рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ "рдкрд╛рд╕ рдХреЗ рдмрд┐рдВрджреБ" рд╢рдмреНрдж рдХреА рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рджреА рдЧрдИ рдереА:
рдлреЙрд▓реЛ- рдЕрдк рдмрд┐рдВрджреБ рдЙрд╕ рд╕рдордп рдХрд╛ рдмрд┐рдВрджреБ рд╣реИ рдЬрдм "рдбрд╕реНрдЯ рд╕реЗрдЯрд▓" рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рдкреАрдЫреЗ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реЛрддреА рд╣реИред

C ++ рдорд╛рдирдХ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ рдорд╛рдирдХ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ:



"рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░" рдХреНрдпрд╛ рд╣реИ?

рдорд╛рдирдХ :1.3.12 рдореЗрдВ "рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:
рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ - рдЧрд▓рдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рдг рдпрд╛ рдЧрд▓рдд рдбреЗрдЯрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╡реНрдпрд╡рд╣рд╛рд░, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдорд╛рдирдХ рдХрд┐рд╕реА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдорд╛рдирдХ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдорддрд▓рдм рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдмреВрдЧрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ рдирд╛рдХ рд╕реЗ рдЧрд┐рд░рдирд╛ рдФрд░ рдЕрдкрдиреА рдкреНрд░реЗрдорд┐рдХрд╛ рдХреА рдЧрд░реНрднрд╛рд╡рд╕реНрдерд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИ?

рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдЬрд╛рдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░, рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░реЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ (рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░) - рд╡рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЬреИрд╕реЗ рдХрд┐ рд╕рдмрд╕рдХреНрд╕реЗрд╕рд┐рдпрди рдХреА рдЧрдгрдирд╛:

рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди -рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ (рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рд╕рд╣реА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЧрдард┐рдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдЬреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реВрдЪрдХ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИред рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕реВрдЪрдХ рдХрд╛ рдЖрдХрд╛рд░ рд╕рдВрдХрд▓рдХ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рдЖрдХрд╛рд░ рднреА рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдпрд╣ рднреА рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдСрдкрд░реЗрдВрдб рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рдмрдПрдХреНрд╕рдкреНрд░реЗрд╕, рдФрд░ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХрд╛ рдХреНрд░рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 int x = 5, y = 6; int z = x++ + y++; //  ,    x++  y++ 


рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг:

 int Hello() { return printf("Hello"); } int World() { return printf("World !"); } int main() { int a = Hello() + World(); /**  ┬лHello World!┬╗  ┬лWorld! Hello┬╗ ^ |        **/ return 0; } 


In5 / 4 рдореЗрдВ, рдорд╛рдирдХ рдХрд╣рддрд╛ рд╣реИ:
рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ, рд╕реНрдХреЗрд▓рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рд╕рдВрдЧреНрд░рд╣реАрдд рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рджреЛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдЪрд░ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ, рдЕрдЧрд▓рд╛ рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ рдЖрдорддреМрд░ рдкрд░ рд╕рдорд╛рдкрди рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдкрд┐рдЫрд▓реЗ рдХрдерди рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрд┐рдЫрд▓рд╛ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдкреВрд░реНрд╡рдЧрд╛рдореА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдирд┐рдореНрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдмрдирд╛рддреА рд╣реИрдВ:

 i++ * ++i; // i = ++i; // ++i = 2; // i   1  i = ++i +1 // i = (i,++i,++i); //      `++i`   `i` (`i`   1   2  ) 

рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ:

 i = (i, ++i, 1) + 1; //  i = (++i,i++,i) //  int j = i; j = (++i, i++, j*i); //  


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░) - рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкреБрд░рд╛рдирд╛ рдореВрд▓реНрдп (рдЧрдгрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ) рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рдореВрд▓реНрдп рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрд┐рди рднрд╛рд╡реЛрдВ рдореЗрдВ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реЗ рдЗрд╕рдХреЗ рд╕рдВрд╢реЛрдзрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 std::printf("%d %d", i,++i); // ,    тАУ  (++i)    . 


рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг:

 a[i] = i++ ; //  a[++i] = i ,  a[i++] = ++i  .. 


рдореИрдВрдиреЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ C ++ 0x рдореЗрдВ рдХреЛрдИ рдлреЙрд▓реЛ рдкреЙрдЗрдВрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕рдЪ рд╣реИ?


рд╣рд╛рдБ рдпрд╣ рд╕рдЪ рд╣реИред
рдПрдХ "рдЕрдиреБрд╡рд░реНрддреА рдмрд┐рдВрджреБ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдЖрдИрдПрд╕рдУ рд╕реА ++ рд╕рдорд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЕрдиреБрд╡рд░реНрддреА рд░рд┐рд╢реНрддреЗ [рдкрд╣рд▓реЗ рд╕реЗ рдмреЗрд╣рддрд░] рдХреА рдкрд░рд┐рд╖реНрдХреГрдд рдФрд░ рд╕рдВрд╡рд░реНрдзрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдиреБрд╡рд░реНрддреА рд╕рдВрдмрдВрдз [рдкрд╣рд▓реЗ] рдХреНрдпрд╛ рд╣реИ?
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдПрдХ рд░рд┐рд╢реНрддрд╛ рд╣реИ:
  • рд╡рд┐рд╖рдо
  • рд╕рдХрд░реНрдордХ
  • рд╕рдВрдЧрдгрдирд╛ рдХреЗ рдЬреЛрдбрд╝реЗ рдФрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрд░рдордмрджреНрдз рд╕реЗрдЯ рдХреЗ рдмреАрдЪ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ


рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рджреЛ рджрд┐рдП рдЧрдП рдП рдФрд░ рдмреА рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдП [рдбреАрдУ] рдмреА рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рддреЛ рдП рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдкреВрд░реНрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдмреАред рдП рдП рдХреЛ рдбреАрдУ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ] рдмреА, рддреЛ рдП рдФрд░ рдмреА рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реИред (рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЧрдгрдирд╛ рдУрд╡рд░рд▓реИрдк рд╣реЛ рд╕рдХрддреА рд╣реИ)ред
рдП рдФрд░ рдмреА рдХреА рдЧрдгрдирд╛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реЛрддреА рд╣реИ рдЬрдм рдП [рдбреАрдУ] рдмреА рдпрд╛ рдмреА [рдбреАрдУ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ] рдП, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдЕрдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрджреЗрд╢рд┐рдд рдЧрдгрдирд╛рдПрдВ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

C ++ 0x рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ "рдЧрдгрдирд╛" рд╢рдмреНрдж рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ?

C ++ 0x рдореЗрдВ, рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ (рдпрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░) рдЖрдо рддреМрд░ рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


рдорд╛рдирдХ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ (.91.9 / 14):
рдкреВрд░реНрдг рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдп рдЧрдгрдирд╛ рдФрд░ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ [рдЖрдЧреЗ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ] рдореВрд▓реНрдп рдЧрдгрдирд╛ рдФрд░ рдЕрдЧрд▓реА рдкреВрд░реНрдг рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдиреА рд╣реИред

рддреБрдЪреНрдЫ рдЙрджрд╛рд╣рд░рдг:

 int x; x = 10; ++x; 


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ (++ x), [рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ] рдореВрд▓реНрдп рдФрд░ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреА рдЧрдгрдирд╛ (x = 10)ред

рдЖрдЦрд┐рд░рдХрд╛рд░, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЪреАрдЬреЛрдВ рдФрд░ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмреАрдЪ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рд╕рдВрдмрдВрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?


рдмреЗрд╢рдХ, рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╣реИред

┬з1.9 / 15 рдореЗрдВ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐:
рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдВрдЪрд╛рд▓рдХ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЙрдк-рд╡рд░реНрдЧ рдХреЗ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред

рдиреЛрдЯ: рдПрдХ рдкреВрд░реНрдг рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдСрд░реНрдбрд░ рдХрд┐рдП рдЧрдП рд╕рдмрдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХрд╛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 int main() { int num = 19 ; num = (num << 3) + (num >> 3) ; } 


1) "+" рдСрдкрд░реЗрдЯрд░ рдХреЗ рдСрдкрд░реЗрдВрдб рдХреА рдЧрдгрдирд╛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИред
2) рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрдгрдирд╛ "<<" рдФрд░ ">>" рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИред

Follows1.9 / 15 рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ [рд╕рдВрдЪрд╛рд▓рдХ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдореВрд▓реНрдп рдХреА] рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХреНрд╕ + рд╡рд╛рдИ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ, "x" рдФрд░ "y" рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ [рдкрд╣рд▓реЗ рд╕реЗ] x + y рдХреА рдЧрдгрдирд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреА рд╣реИред

рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг:

┬з1.9 / 15 рдпрджрд┐ рдХрд┐рд╕реА рд╕реНрдХреЗрд▓рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреА рдШрдЯрдирд╛ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдШрдЯрдирд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реЛрддреА рд╣реИ:
  • рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреЗ рджреВрд╕рд░реЗ рдкрдХреНрд╖ рдкреНрд░рднрд╛рд╡ рдХреА рдШрдЯрдирд╛
  • рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдореВрд▓реНрдп рдЧрд┐рдирдирд╛

рдлрд┐рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ UNCERTAINTY рд╣реЛрдЧрд╛ред


рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 f(i = -1, i = -1); 


рдЖрдЗрдП рд╣рдо рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдВред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХреЛрдВ рдХреА рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрдгрдирд╛ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдирд╣реАрдВ рд▓рд╛рдПрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рд╕рдЯреАрдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ, рдЗрд╕ рддрд░рд╣ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддреЗ рд╣реБрдП, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдирд╣реАрдВ рдмрдирд╛рдПрдЧрд╛ (рдЗрд╕рдХреА рд░рд╛рдп рдореЗрдВ), рдЬреЛ рдЙрд╕реА рдореЗрдореЛрд░реА рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╕рдВрдХрд▓рдХ рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ "-1" рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдЪрд░ рдХреЛ рд╢реВрдиреНрдп рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдХрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдирд┐рд░реНрджреЗрд╢ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрджреЗрд╢ рд╕рд╢рд░реНрдд рд╣реИрдВ):
 clear i decr i clear i decr i 


рдпрд╛ рд╡реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 clear i clear i decr i decr i 


рдЬрд┐рд╕рдХреЗ рдмрд╛рдж value -2 рдХреЛ i рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЬрдм рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддрд░реНрдХ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдореВрд▓реНрдп рдФрд░ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдЧрдгрдирд╛, [рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП] рдХрд┐рд╕реА рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдпрд╛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрдиред
рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рдореВрд▓реНрдп рдЧрдгрдирд╛ рдФрд░ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИрдВред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкреНрд░рд╡рд╛рд╣


рдкрд╣рд▓реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХреА рдЧрдИ рд╢рд░реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╡рд╛рд╣ рдХреЛ рд░реЗрдЦрд╛рдВрдХрди рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░реЗрдЦреЛрдВ рдореЗрдВ, рд╣рдо рдПрдХреНрд╕ (рдПрдХреНрд╕) рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдпрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░) рдХреА рдЧрдгрдирд╛ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ, рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ% рд╣реИ, рдФрд░ рд╡рд╕реНрддреБ "рдИ" рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ "рдИ" рдПрд╕ (рдХреЗ, рдИ) рд╣реИред рдпрджрд┐ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдорд╛рди рдХреЛ рдкрдврд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ ("x" рдирд╛рдо рд╣реЛ), рд╣рдо рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реА (x) рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ - E (x) рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕рд╣рдордд рдерд╛ред рд╣рдо рднрд╛рд╡реЛрдВ рдХреЗ рджрд╛рдИрдВ рдФрд░ рдмрд╛рдИрдВ рдУрд░ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рджреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рд╕реАрдорд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдКрдкрд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рдЪрд▓реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреА рд╣реИ (рдЕрдХреНрд╕рд░ рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдЪрд▓реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдКрдкрд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рднрд╛рд╡ рдпрд╛ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ)ред
рджреЛ i ++ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП; рдореИрдВ ++; рдЖрд░реЗрдЦ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 E(i++) -> { S(increment, i) } | % | E(i++) -> { S(increment, i) } | % 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рдВрджреБ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ "i" рдХреЗ рджреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред
рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рднреА рд░реБрдЪрд┐ рдХреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдЙрдирдХреЗ рд▓рд┐рдП рдЖрд░реЗрдЦ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ:

 int c = 0; int d = 0; void f(int a, int b) { assert((a == c - 1) && (b == d - 1)); } int main() { f(c++, d++); } 


рдпрд╣ рдХреЛрдб рд╕рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рддрдХ рдлрд╝рдВрдХреНрд╢рди f рдХрд╛ рд╢рд░реАрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддрдм рддрдХ рддрд░реНрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕рднреА рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ: "c" рдФрд░ "d" 1 рд╕реЗ рдмрдврд╝ рдЬрд╛рдПрдВрдЧреЗред
рдЕрдм рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ i ++ * j ++;
 { S(increment, i) } <- E(i++) E(j++) -> { S(increment, j) } \ / +--+--+ | E(i++ * j++) | % 


рджреЛ рд╢рд╛рдЦрд╛рдПрдБ рдХрд╣рд╛рдБ рд╕реЗ рдЖрдИрдВ? рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ рдЧрдгрдирд╛ рдкреВрд░реА рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╣реБрдП рдереЗред рдЧреБрдгрди рдХреЗ рд╕рднреА рдЙрдкрдЦрдВрдбреЛрдВ рдХреА рдЧрдгрдирд╛ рдЧреБрдгрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдЕрдм рдХреЛрдИ рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ "рд╕рдорд╛рдирддрд╛рд╡рд╛рдж" рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЬрд╣рд╛рдВ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпреЗ рджреЛ рд╢рд╛рдЦрд╛рдПрдВ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИрдВред рдЕрдиреБрд╡рд░реНрддреА рдмрд┐рдВрджреБ рдПрдХ рдРрд╕рд╛ рд╕рдВрдмрдВрдз рд╣реИ рдЬреЛ рдХреБрдЫ рдЧрдгрдирд╛рдУрдВ рдХрд╛ рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдЖрджреЗрд╢ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдВрд╢рд┐рдХ рдЖрджреЗрд╢ рд╣реИрдВред

рд╕рдВрдШрд░реНрд╖ рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ред

рдорд╢реАрди рдХреЛрдб рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рдЧреБрдгрд╛ рдХреЗ рд╕рдорд╛рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рдмрдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред
рдЗрд╕рд╕реЗ рд╕рдВрдШрд░реНрд╖ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдорд╛рдирдХ рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБрдУрдВ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдЙрд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдорд╛рдирдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдирд┐рд╢реНрдЪрд┐рддрдХрд╛рд▓реАрди рдХрд╣рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдХреЗрд▓рд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рддреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп (рд╕рд░рдгреА) рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рдЗрд╕ рдирд┐рдпрдо (рдХреНрд▓рд╛рд╕ рд╕рд╛рдЗрдЯреНрд╕) рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВред рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкрд┐рдЫрд▓реЗ рдореВрд▓реНрдп рдФрд░ рдЙрд╕рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ i * i ++ рдореЗрдВ
 //    ! //  ,    'i'   ┬л┬╗ : V(i) E(i++) -> { S(increment, i) }) \ / +---+---+ | E(i * i++) | % 

рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдпрджрд┐ рдПрдХ рдирдП рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдкреНрд░рд╕рдВрдЧ рдЙрджрд╛рд╣рд░рдг: i = i + 1
  V(i) E(1) \ / +---+---+ | E(i) E(i + 1) \ / +-------+-------+ | E(i = i + 1) -> { S(assign, i) } | % 


рдпрд╣рд╛рдВ рд╣рдо рджрд╛рдИрдВ рдУрд░ "i" рдХреА рдЕрдкреАрд▓ рджреЗрдЦрддреЗ рд╣реИрдВ; рджреЛрдиреЛрдВ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рдмрд╛рдж, рдПрдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдФрд░ "рдЖрдИ" рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ рдХреЛ рдкрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "i" рд╣реЛ рдЧрдП, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдЕрд╕рд╣рдорддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдХрднреА-рдХрднреА, рдореВрд▓реНрдп рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд╛рдж рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП
a = (b = 0);
рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ "рдмреА" рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ рдХреЛ рдкрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ "рдмреА" рд╕реЗ рдкрдврд╝рдирд╛ рд╣реИред рдлрд┐рд░ рднреА, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирдпрд╛ рдореВрд▓реНрдп "рдмреА" рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрдврд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ "рдмреА" рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рди рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдЕрдЧрд▓реЗ рдмрд┐рдВрджреБ рддрдХ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдмрд▓реНрдХрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ "рдП" рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдп "рдмреА" рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рднреАред рдорд╛рдирдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рддрд╛ рд╣реИ: "рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдореВрд▓реНрдп рд╣реИ (рдкрд░рд┐рдгрд╛рдо рд▓рдВрдмрд┐рдд рд╣реИ)ред" рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рдХреЗ рд╕рднреА рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдЙрд╕ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд░реАрдб рд╣реЛрддрд╛ рд╣реИред

рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ:

Source: https://habr.com/ru/post/In216189/


All Articles