суббота, 18 февраля 2012 г.

Об операции присваивания в языке С

Известно, что результатом операции в С может быть числовая константа, а может быть ссылка на область памяти, которая появляется, например в результате присваивания:

a = b

Тот факт, что результатом является ссылка, влияет на результат, который получается в следующем примере:

int a=10,b=20,c=30,d;
d=(a=b)*(a=c);

Переменная d будет содержать 900, так как в результате второго присваивания переменная a получит значение 30 и оно будет перемножено само на себя, несмотря на недавнее присвоение a значения 20.

Правда, необходимо отметить, что ссылка на область памяти является ссылкой на константу, так что выражения типа

(a=b)=c

неизбежно вызовут ошибку компиляции.

Комментариев нет:

Отправить комментарий