Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Техн. прогр. - Конспект лекций.doc
Скачиваний:
31
Добавлен:
15.03.2016
Размер:
877.06 Кб
Скачать

Объявление переменных. Типы данных

В языке Си среди простых типов присутствуют только числовые. Логический и символьный типы отсутствуют:

– в логических выражениях значению «ложь» соответствует целый ноль, значению «истина» – любое другое значение;

– символьные константы преобразуются компилятором в коды соответствующих символов;

– любое целое число может быть представлено как соответствующий ему символ.

В простейшем случае переменные объявляются следующим образом:

<тип_данных> <имя_переменной>

int x; bool flag; char s;

Несколько переменных, имеющих один тип данных, могут быть объявлены вместе:

int a,b,c; //объявление трёх переменных типа int

При объявлении переменным могут быть присвоены начальные значения:

int a=3, b=4, c; //Переменной «c» начальное значение не задано.

В языке «С» переменные должны быть объявлены в начале функции, до любых других операторов. В языке «С++» данное ограничение отсутствует.

Простые типы данных

Существуют три категории простых типов: целые числа, вещественные числа и пустой тип. Стандарт на язык «С++» не определяет диапазоны каждого из типов, но определяет, какой из типов имеет больший диапазон (или точность для вещественных чисел), а какой – меньший. Типы данных будут перечислены от меньшего к большему.

В языке С++ введён дополнительно логический тип, отсутствующий в С.

Целые числа: char, short, int, long, long long.

Вещественные числа: float, double, long double.

Пустой тип: void. Переменные данного типа не могут быть определены, он используется для описания функций, не возвращающих значения, и для определения нетипизированных указателей.

Логический тип: bool. Принимает одно из двух значений: true или false.

Целочисленные типы данных могут быть как знаковыми, так и беззнаковыми. Для определения, является тип знаковым или беззнаковым, используются ключевые слова signed и unsigned соответственно, которые записываются перед идентификатором типа данного. Если явно не указано, является тип знаковым или беззнаковым, он считается знаковым. Однако, настройки компилятора могут переопределять это умолчание.

Пример.

int x; // тоже, что и signed int x;

unsigned long t;

В таблице 1 приведены размеры памяти (в битах), занимаемые простыми типами данных в различных средах разработки.

Таблица 1.

Borland C/C++ (16 bit)

Ms Visual Studio 2008

char

8

8

short

16

16

int

16

32

long

32

32

long long

64

64

float

32

32

double

64

64

long double

80

64

bool

8

8

Структурированные типы данных

К структурированным типам данных относятся структуры и объединения.

struct <name> {type1 name1; type2 name2;}; // структура

union <name> {type1 name1; type2 name2;}; // объединение (все данные размещены с одного адреса в памяти)

Константы

Целые константы задаются с помощью целых чисел без разделяющей точки и имеют тип int. Можно явно указать тип long или unsigned при помощи использования суффиксов соответственно «l», «L», «u», «U».

Пример: 123L, 43u, 53lu, 63UL

Hex, oct!

Константа с плавающей точкой может включать семь частей: целая часть, десятичная точка, дробная часть, символ экспоненты, показатель десятичной степени (со знаком или без), суффикс. При отсутствии суффикса константы имеют представление double, суффикс f или F соответствует float, суффикс l или L – long double.

В записях вещественных констант могут опускаться (не одновременно): или целая или дробная часть; или десятичная точка или признак экспоненты; суффикс.

Примеры: 45.      .6      4.6      1.25f      3.5e-4      5E+6L

Перечислимые константы вводятся при помощи служебного слова enum. Это целочисленные константы, которым присвоены идентификаторы. Идентификаторы могут быть перечислены через запятую, тогда им последовательно присваиваются значения от нуля. Или для каких-нибудь из них могут быть указаны значения, которые меняют порядок присвоения.

Примеры:

enum {zero ,one, two, three} соответствует zero=0, one=1, two=2, three=3.

enum {one=1, two, three} соответствует one=1, two=2, three=3.

enum {ten=10, two=2, three} соответствует ten=10, two=2, three=3.

Символьные (литерные) константы – это один или два символа, заключённые в апострофы. Во время компиляции символьные константы заменяются их кодами. Для записи специальных символов используют эскейп-последовательности, которые состоят из двух-четырёх символов и начинаются с символа «обратный слеш». Например \n соответствует переводу строки (код 10), \r – возврат каретки (код 13), \t – табуляция (код 09) и т.д. Для записи некоторых символов также используются эскейп-последовательности: \\ – обратный слеш, \” – двойная кавычка, \’ – одинарная кавычка, \? – знак вопроса.

ВНИМАНИЕ Частой ошибкой является запись «\» вместо «\\», например, в полном имени файла.

Строковые константы – это набор символов, заключённый в двойные кавычки. В строковых константах также могут быть применены эскейп-последовательности. Для записи строковой константы, которая занимает несколько строк, в конце каждой из них должен быть использован символ «\».

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

Пример:

const int t = 0;

t = 5; // ошибка, нельзя переприсваивать значения константных переменных