Базовые стандартные типы данных

Таблица 1

Имя типа размер в байтах объектов данного типа способ кодировки диапазон значений данных, которые могут быть записаны в объектах данного типа (от … до …)
char символ -128 … 127 (коды ASCII)
unsigned char беззнаковый символ 0 … 255
short целое -32768 … 32767
unsigned int беззнаковое целое 0 … 65535
int целое -32768 … 32767
long длинное целое -2147483648 … 2147483647
unsigned long беззнаковое длинное целое 0 … 4294967295
float действительное 3.4E-38 … 3.4E+38
double длинное действительное 1.7E-308 … 1.7E+308
long double длинное действительное 3.4E-4932 … 3.4E+4932

Понятие определения объекта

Для того, чтобы в программе можно было работать с объектом, его надо создать, т.е. программист на языке С++ должен дать указание системе на его создание – на выделение памяти требуемого размера и задать способ кодировки информации в этой области памяти. Выделенной памяти должно быть присвоено имя. В этом случае говорят, надо определить (defined)объект.Определить объект можно только один раз!!!!!!!!

Объект, который определен, одновременно и описан (declared).

Инструкция определения объекта выглядит так:

имя_типа [имя_объекта1, имя_объекта2, …,] имя_объектаN ;

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

Инструкция обязательно заканчивается точкой с запятой. Нет точки с запятой – нет инструкции!!!

Например:

int nA1,nA2, nA3 = 0 ;

float fltVar ;

char chSymb ;

Здесь записаны три инструкции определения объекта.

Первая создает в памяти три объекта с именами nA1, nA2, nA3, размер каждого из них 2 байта, в область этих объектов можно записывать целые числа из диапазона от -32768 до 32767 (смотри табл .) При создании объектов nA1, nA2 в их область памяти ничего разумного не записано, там могут в данный момент находиться любые целые числа из диапазона объектов типа int.

В область объекта nA3 записано в момент создания число 0. Об объекте nA3 говорят, что объект nA3 инициализирован нулем.

Какие объекты созданы в в следующих двух инструкциях, смотри таблицу 1.

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

Так определяют целые константные объекты, тип которых long:

3 55 -10 +1 1 1876

Так определяют действительные константные объекты, тип которых double ( в записи таких констант всегда присутствует точка):

3.0 3.55. – 10. -1.1 0.34 .34 -15.12345678

Так определяют символьные константные объекты, тип которых char (их значения взяты в одинарные кавычки – кавычки не являются частью данного, а призваны только для того , чтобы обозначить его значение):

‘3‘ ‘a‘ ‘\n‘ ‘я‘ ‘%‘ ‘}‘

Так определяют символьные константные строки (их тип пока называть не будем, т.к. эти константные объекты являются объектами производного типа), значения этих констант взяты в двойные кавычки – двойные кавычки не являются частью данного, а призваны только для того, чтобы обозначить его значение:

“3“ “abcd“ “123456789“ “-15.12345678“ “я“

“константная строка, в памяти занимает столько байт, сколько в ней символов + 1 байт на символ конца строки“

Символом конца строки является символ ‘\0’, код которого равен 0.

Понятие описания объекта

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

Но иногда в программе приходится объект не создавать (он где-то уже создан или гарантировано будет создан), а только описывать (declared) его основные характеристики, для того чтобы система знала, как правильно организовать его обработку. В этом случае используют инструкцию описания объекта.

Вот ее вид:

extern имя_типа [имя_объекта1, имя_объекта2, …,] имя_объектаN ;

Обратите внимание, что инструкция описания объекта повторяет синтаксис инструкции определения объекта, перед которой появляется зарезервированное слово extern.

Модульная структура программы в СИ++. Объект типа функция.

Любой алгоритм можно сформулировать в виде последовательности операций, выполняемых над некоторыми объектами, и записать эту последовательность операций в виде программы. С увеличением алгоритмов и соответственно объема программы невозможно удержать в памяти все ее детали. Возрастает трудоемкость создания таких программ и уменьшается их надежность. К счастью программисты давно используют принципы структурного программирования, разбивая программу на отдельные процедуры, реализующие определенные группы операции алгоритма. Каждая процедура решает свою узкоспециализированную задачу, может обращаться к другим процедурам, а для этого ей необходимо уметь обмениваться данными с другими процедурами. Понятие подобной процедуры в языке С++ конкретизируется в виде объекта типа функции.

Такой стиль программирования, использующий принципы структурного программирования, ведет к повышению степени абстракции программы и к упрощению ее структуры, повышает надежность программы. Разделение программы на объекты-функции позволяет избежать избыточности кода (многократного повторения одного и того же кода), поскольку функцию записывают один раз, а вызывать ее на выполнение можно многократно из разных точек программы. Упрощается процесс отладки, т.к. каждую функцию можно отладить отдельно. Дальнейшим шагом в повышении уровня абстракции является объединение функций и связанных с ними данных в отдельные файлы - исходные модули (они имеют расширение .срр), компилируемые раздельно. Получившиеся в процессе компиляции файлы объектные модули (файлы с расширением .obj), объединяются в исполняемую программу с помощью компоновщика (получают исполняемый файл с расширением .exe).

Наши рекомендации