Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по программированию.docx
Скачиваний:
27
Добавлен:
14.04.2019
Размер:
108.49 Кб
Скачать

11. Представление символов в эвм. Основные типы данных, инициализация данных.

Важное отличие языка СИ от других языков (PL1, FORTRAN, и др.) является отсутствие принципа умолчания, что приводит к необходимости объявления всех переменных используемых в программе явно вместе с указанием соответствующих им типов.

Объявления переменной имеет следующий формат:

[спецафикатор-класа-памяти] спецификатор-типа

описатель [=инициатор] [,описатель [= инициатор] ]...

Описатель - идентификатор простой переменной либо более сложная конструкция с квадратными скобками, круглыми скобками или звездочкой (набором звездочек).

Спецификатор типа - одно или несколько ключевых слов, определяющие тип объявляемой переменной. В языке СИ имеется стандартный набор типов данных, используя который можно сконструировать новые (уникальные) типы данных.

Инициатор - задает начальное значение или список начальных значений, которые (которое) присваивается переменной при объявлении.

Спецификатор класса памяти - определяется одним из четырех ключевых слов языка СИ: auto, extern, register, static, и указывает,каким образом будет распределяться память под объявляемую переменную, с одной стороны, а с другой, область видимости этой переменной, т.е., из каких частей программы можно к ней обратиться.

Категории типов данных

Ключевые слова для определения основных типов данных

Целые типы : Плавающие типы:

char float

int double

short long double

long

signed

unsigned

Переменная любого типа может быть объявлена как немодифицируемая. Это достигается добавлением ключевого слова const к спецификатору-типа. Объекты с типом const представляют собой данные используемые только для чтения, т.е. этой переменной не может быть присвоено новое значение. Отметим, что если после слова const отсутствует спецификатор-типа, то подразумевается спецификатор типа int. Если ключевое слово const стоит перед объявлением составных типов (массив, структура, смесь, перечисление), то это приводит к тому, что каждый элемент также должен являться немодифицируемым, т.е. значение ему может быть присвоено только один раз.

Примеры:

const double A=2.128E-2;

const B=286; (подразумевается const int B=286)

Инициализация данных

При объявлении переменной ей можно присвоить начальное значение, присоединяя инициатор к описателю. Инициатор начинается со знака "=" и имеет следующие формы. Формат 1: = инициатор; Формат 2: = { список - инициаторов }; Формат 1 используется при инициализации переменных основных типов и указателей, а формат 2 - при инициализации составных объектов. Примеры: char tol = 'N'; Переменная tol инициализируется символом 'N'. const long megabute = (1024 * 1024); Немодифицируемая переменная megabute инициализируется константным выражением после чего она не может быть изменена. static int b[2][2] = {1,2,3,4}; Инициализируется двухмерный массив b целых величин элементам массива присваиваются значения из списка. Эта же инициализация может быть выполнена следующим образом: static int b[2][2] = { { 1,2 }, { 3,4 } }; При инициализации массива можно опустить одну или несколько размерностей static int b[3[] = { { 1,2 }, { 3,4 } }; Если при инициализации указано меньше значений для строк, то оставшиеся элементы инициализируются 0, т.е. при описании static int b[2][2] = { { 1,2 }, { 3 } }; элементы первой строки получат значения 1 и 2, а второй 3 и 0. При инициализации составных объектов, нужно внимательно следить за использованием скобок и списков инициализаторов.