C (programovací jazyk): Jaký je rozdíl mezi: ++ a a = a + 1?


Odpověď 1:

Není žádný rozdíl. ++ a, a + = 1 a a = a + 1 jsou přesně stejné výrazy podle definice (to znamená, že jazyková specifikace je definuje tímto způsobem).

Ve všech třech případech je výsledkem výraz kopie kopie, kterou zapíše do „a“ (a ++ se samozřejmě liší tím, že výsledkem je kopie hodnoty, kterou přečte z „a“).

Jediným rozdílem je, že pokud je „a“ složitějším výrazem, jako je volání funkce, bude zavoláno dvakrát v „a = a + 1“, a že priorita tohoto přiřazení je mnohem nižší než ++, takže pomocí přiřazení místo ++ někdy vyžaduje zvláštní závorky: ++ a + ++ b je jednodušší psát než (a + = 1) + (b + = 1) nebo (a = a + 1) + (b = b + 1)


Odpověď 2:

++ a a + 1 se podobá stejnému, ale problém nastává, když u používal více než jednu proměnnou.

příklad:

int a = 10, b;

++ a => zvyšuje hodnotu o jeden (o / p: a = 11)

a ++ => zvyšuje hodnotu o jeden (o / p: a = 11))

b = a ++ => Nejprve přiřaďte hodnotu a a a poté zvyšujte o 0ne (o / p: a = 11, b = 10)

b = ++ a => První hodnota a se zvyšuje o jednu a poté se přiřazuje k b (o / p: a = 11, b = 11)


Odpověď 3:

++ a a + 1 se podobá stejnému, ale problém nastává, když u používal více než jednu proměnnou.

příklad:

int a = 10, b;

++ a => zvyšuje hodnotu o jeden (o / p: a = 11)

a ++ => zvyšuje hodnotu o jeden (o / p: a = 11))

b = a ++ => Nejprve přiřaďte hodnotu a a a poté zvyšujte o 0ne (o / p: a = 11, b = 10)

b = ++ a => První hodnota a se zvyšuje o jednu a poté se přiřazuje k b (o / p: a = 11, b = 11)


Odpověď 4:

++ a a + 1 se podobá stejnému, ale problém nastává, když u používal více než jednu proměnnou.

příklad:

int a = 10, b;

++ a => zvyšuje hodnotu o jeden (o / p: a = 11)

a ++ => zvyšuje hodnotu o jeden (o / p: a = 11))

b = a ++ => Nejprve přiřaďte hodnotu a a a poté zvyšujte o 0ne (o / p: a = 11, b = 10)

b = ++ a => První hodnota a se zvyšuje o jednu a poté se přiřazuje k b (o / p: a = 11, b = 11)


Odpověď 5:

++ a a + 1 se podobá stejnému, ale problém nastává, když u používal více než jednu proměnnou.

příklad:

int a = 10, b;

++ a => zvyšuje hodnotu o jeden (o / p: a = 11)

a ++ => zvyšuje hodnotu o jeden (o / p: a = 11))

b = a ++ => Nejprve přiřaďte hodnotu a a a poté zvyšujte o 0ne (o / p: a = 11, b = 10)

b = ++ a => První hodnota a se zvyšuje o jednu a poté se přiřazuje k b (o / p: a = 11, b = 11)