Оператор за присвояване

Синтаксис
<променлива> = <израз>;
като <променлива> и <израз> са от един и същ тип.
Семантика
Пресмята стойността на <израз> и я записва в паметта, именувана с променливата от лявата страна на знака за присвояване =.

Фиг. 3.

Да се върнем към дефинициите на променливите a и b и операторите за присвояване и return на Zad1.cpp. Забелязваме, че в тях са използвани два вида числа: цели (2 и 0) и реални (2.3 и 3.7). Целите числа се записват като в математиката, а при реалните, знакът запетая се заменя с точка. Умножението е отбелязано със *, а събирането – с +. Забелязваме също, че изразите 2*(a+b) и a*b са реални, каквито са и променливите p и s от левите страни на знака = в операторите за присвояване.
Конструкциите
cout << "p= " << p << "\n";
cout << "s= " << s << "\n";
са оператори за извеждане. Наричат се още оператори за поточен изход. Еквивалентни са на редицата от оператори
cout << "p= ";
cout << p;
cout << "\n";
cout << "s= ";
cout << s;
cout << "\n";
Операторът << означава “изпрати към”. Обектът (променливата) cout (произнася се “си-аут”) е името на стандартния изходен поток, който обикновено е екрана или прозорез на екрана.
Редица от знаци, оградена в кавички, се нарича знаков низ, или символен низ, или само низ. В програмата Zad1.cpp “p= “ и “s= “ са низове. Низът “\n“ съдържа двойката знаци \ (backslash) и n, но те представляват един-единствен знак, който се нарича знак за нов ред. Операторът
cout << "p= ";
извежда върху екрана низа
p=
Операторът
cout << p;
извежда върху екрана стойността на p, а
cout << "\n";
премества курсора на следващия ред на екрана, т.е. указва следващото извеждане да бъде на нов ред.
Фиг. 7. показва по-детайлно синтаксиса и семантиката на оператора за извеждане.

Изпълнение на Zad1.cpp
След обработката на директивата
#include <iostream.h>
файлът iostream.h е включен във файла, съдържащ функцията main на Zad1.cpp. Изпълнението на тялото на main започва с изпълнение на дефинициите
double a = 2.3;
double b = 3.7;
double p, s;
в резултат, на което в ОП се отделят по 8 байта за променливите a, b, p и s, т.е.
ОП
a b p s
2.3 3.7 - -
Коментарите се пропускат. След изпълнението на операторите за присвояване:
p = 2*(a+b);
s = a*b;
променливите p и s се свързват с 12.0 и 8.51 съответно, т.е.
ОП
a b p s
2.3 3.7 12.0 8.51
Операторите
cout << "p= " << p << "\n";
cout << "s= " << s << "\n";
извеждат върху екрана на монитора
p= 12
s= 8.51
Изпълнението на оператора
return 0;
преустановява работата на програмата сигнализирайки, че тя е завършила успешно.
Забележка: Реалните числа се извеждат с възможно минималния брой знаци. Така реалното число 12.0 се извежда като 12.
В същност, описаните действия се извършват над машинния еквивалент на програмата Zad1.cpp. А как се достига до него?