Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_новое.DOC
Скачиваний:
7
Добавлен:
28.09.2019
Размер:
486.4 Кб
Скачать

3 Типы данных языка с

Данные, которые используются программой, называются объектами. Объект — это область памяти ЭВМ, которая может содержать: переменную, функцию, значение, метку. Тип данных определяет способ хранения объекта в памяти ЭВМ и набор операций, которые применяются к объекту.

В языке С предусмотрено четыре базовых типа данных : символьный (char), целый (int) и вещественный с обычной (float) и двойной (double) точностью. Отсутствие типа задается служебным словом void. В табл. 3.1 приведены базовые типы данных, размер области памяти в байтах и диапазон принимаемых значений. Размещение данных в памяти компьютера показано на рис. 3.1.

Таблица 3.1— Базовые типы данных

Тип данных

Спецификатор

типа

Размер в байтах

Диапазон

изменения

Символ

char

1

-128 — 127

Целое

int

2

-32768 — 32767

Вещественное

float

4

-3.4Е-38 — 3.4Е38

Вещественное двойной точности

double

8

-1.7Е-308 1.7Е+308

Тип отсутствует

void

используется при описании функций

Рис. 3.1

Существуют модификаторы типа, которые помещаются перед именем типа по форме:

модификатор тип переменная;

Модификаторы unsigned и long изменяют границы значений переменных базового типа за счет использования знакового бита под размещение данных (табл. 3.2). Возможно их комбинирование.

Таблица 3.2 — Модификаторы типа

Тип данных

Спецификатор

типа

Размер в байтах

Диапазон

изменения

Беззнаковый символ

unsigned char

1

0 — 255

Беззнаковое целое

unsigned int

или unsigned

2

0 — 65535

Короткое целое

short int

или short

2

-32768 — 32767

Длинное целое

long int

или long

4

-2147483648 —

2147483647

Длинное вещественное

long double

10

-3.4Е-4932 — 3.4Е4932

Модификаторы типа signed и short делают программы переносимыми с 16-разрядных на 32-разрядные компьютеры. Они используются в случае, когда работа программы основана на эффекте переполнения (см. табл. 3.2).

Модификатор типа register предписывает компилятору воспользоваться для хранения переменной регистром процессора. Используется в тех случаях, когда к переменной программа обращается часто (например, счетчик). Модификатор register предназначен для ускорения работы программы.

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

// Описание (объявление) переменных

char ch;

int value;

float threshold;

double weight;

register count;

// Описание и инициализация переменных

char ch =’A’; // Два способа инициализации символьной

char ch=65; // переменной равнозначны

int age=44, weight, height=173; // Переменная weight

// не инициализирована

float radius=123.05; // Возможны другие формы записи:

// 0.123E03 или .12305E3

float Pi=3.14159; // Обычно используется в качестве константы

unsigned int a=42000 ; // Слово int можно опустить

long int one_million;=1000000;

short small_value=8;

unsigned long int very_large_value=150E6 // Расстояние до

// Солнца (км)

Производные типы данных : указатели, массивы, константы. Можно создать бесконечное число производных типов, применяя указатели и массивы к базовым типам.

Указатель  указывает на объект заданного типа. Например, “указатель на целое” может указывать на любое целое число, используемое в программе. Объект типа “указатель” содержит адрес другого объекта программы. Указывать можно на любой тип (будь то переменная или функция), в том числе и на другой указатель. Форма объявления указателя:

тип *имя_переменной;

Тип указателя должен совпадать с типом переменной, на которую он указывает. Может быть указатель типа void. Прежде чем проводить действия с указателем, его необходимо инициализировать (примеры 3.1 и 3.2). Неинициализированный указатель указывает на нулевой адрес памяти ЭВМ, и действия с ним могут привести к краху системы.Основными операциями над указателями являются: & —“взятие адреса”, по которому расположена переменная, и * — “взятие значения”, расположенного по указанному адресу.

// Пример 3.1.

// Пример работы с указателем

#include <stdio.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]