Переменные и выражения

Типы с плавающей точкой.

Имеют мантиссу и порядок

0,1<=m<1

Внутренне представление вещественного числа состоит из m и p мантиссы и порядка. Для величин типа float выделяется 4 байта: 1 бит знаковый, 8 битов порядок, 23 бита мантиссы

для величин типа double 8бит: 1 бит-знак, 11 битов порядок, 52 мантисса

Константы с плавающей точкой по умолчанию относятся к типу double, также существет суффиксы F L

таблица

Операция size of служит для определения длины поля памяти. Ее аргументом может быть либо имя переменной, либо имя типа. Size of (int) size of x

 

Тип void. Множество значений этого типа пусто. Ониспользуется для описания функций, которые не возвращают значений, а также для указаний списка аргументов функции

 

Структура С++

Программа состоит из директив препроцессора, описаний и функций.

Одна из функций обязательно должна иметь имя main.

Выполнение программы начинается с первого оператора этой функции

Телом функции является совокупность операций заключенный в операторных функциях.

{main}

Если функция не должна возвращать значения-ей приписывается void. Функции не могут быть вложенными.

Пример структуры

Директивы препроцессора

описания

int main()

{

операторы

}

int f1(int x)

{ операторы}

void f2(int a)

{операторы}

 

Пример

#include<iostream>

int main()

{

int I, j

cout<<”Введите целое число \n”;

cin>>i

cout<<”Вы ввели целое число''<<i<<”Спасибо»;

return 0;

}

iostream содержит описание набора классов для управления ввода вывода.

Cout - является объектом этого класса и называется стандартным выходным потоком

cin – стандартный входной поток.

<< - операция помещения в поток

>> - операция чтения из потока

 

Выражение это = операнд операция операнд

операнд = константа, перемененная, выражение

операции = + - …

 

Переменная- это именованная область памяти, в которой хранятся данные.

Имя переменной служит для обращения к этой области.

Значение переменной — содержание области.

Любая переменная в программе должна быть предварительно описана, тог есть отнесена к одному из типов.

Оператор описания = [класс памяти][const] тип имя[инициализатор];

Если в описании переменной используется слово const, то переменную называют именованной константой. Инициализатор это конструкция, служащая для присвоения переменной начального значения. Int I = 5; int i(5);

 

область действия имени это часть программы, в которой имя может быть использовано в соответствии со своим описанием. В зависимости от области действия переменная может быть локальной или глобальной

Если переменная описана внутри блока { }, то область ее действия от точки описания до конца блока. В этом случае переменная называется локальной.

Если переменная описана вне любого блока. Она называется глобальной. И область ее действия — от точки описания до конца программы.

 

Класс памяти определяет время жизни и область видимости переменой.

Время жизни может быть постоянным (в течение всего времени выполнения программы)

и временный (в течение выполнения какого- либо блока)

Областью видимости имени называется часть текста программы. В которой допустим доступ к области памяти, связанной с этим именем.

Для задания класса памяти используются следующие слова:

 

auto (автоматическая переменная) память под нее выделяется в стеке. И освобождается при выходе из блока в котором написана переменная.

Время жизни такой переменной с момента описания до конца блока.

Стек- та область памяти, которая служит для выделения полей.

Для глобальных переменных это служебное слово не используется, а для локальных оно применяется по умолчанию.

 

Extern (external) означает что переменная является внешней. ТО есть объявлена в другом месте программы в другой функции или в другом файле. Что бы переменная была доступна для нескольких блоков.

Используется для создания переменных, доступных модулей программы, в которых они объявлены.

 

Static – статическая переменная. Время жизни постоянное

Такая переменная специализируется один раз, при первом выполнении оператора, содержащего описание переменной.

 

Register — это означает запрос на выделение памяти в регистре процессора. Если такой возможности у компилятора нет переменные будут отнесены к классу auto.

 

 

Int a;

int main()

{ int b;

extern int x;

static int c;

a = 1;

int a;

::a= 3;

return o;

}

 

:: - доступ к глобальной переменной