Неявное преобразование типов.
Если в выражении встречаются операнды различных типов, они приводятся к общему типу и результат, как правило, имеет этот же общий тип. Преобразование операндов осуществляется по следующим правилам:
1) Если один из операндов в выражении имеет тип long double, то остальные тоже преобразуются к типу long double
2) В противном случае, если один из операндов в выражении имеет тип double, то остальные тоже преобразуются к типу double
3) В противном случае, если один из операндов в выражении имеет тип float, то остальные тоже преобразуются к типу float
4) В противном случае, если один из операндов в выражении имеет тип unsigned long, то остальные тоже преобразуются к типу unsigned long
5) В противном случае, если один из операндов в выражении имеет тип long, то остальные тоже преобразуются к типу long
6) В противном случае все операнды преобразуются к типу int.
Неявное преобразование выполняется при присваивании, тип значения, которое присваивается, преобразуется к типу переменной, получающей это значение.
Замечание: Неявное преобразование float в int осуществляется отбрасыванием дробной части.
Пример: int x;
float y = 3.9;
x = y; //à3
y = x; //à3.0
Преобразование double во float выполняется округлением. Преобразование длинных целых к более коротким <intàchar> - отбрасываются лишние старшие биты.
Явное преобразование типов.
Исполняется с помощью операции приведения типа, имеющей следующий синтаксис:
(<имя типа>) <выражение>
1) float y=3.9;
int x;
x=(int)y;
2) int x=5;
float y;
а) y=(float)x/2 результат 2.5
б) y=(float)(x/2) результат другой, т.к. сначало выполняется х\2àрезультат типа
int т.к. х и 2 типа int =>у=2.
§12. Структурные типы данных
12.1 Массивы
Массив - один из структурных типов данных, все элементы которого имеют один и тот же тип и расположены в оперативной памяти в смежных областях.
Синтаксис объявления одномерного массива:
PASCAL: var<имя массива>[<тип индекса>]of<тип элементов>
Пример: var A : array[1..100] of real;
Ограниченный целый тип 1..100 определяет количество элементов массива (100) и их упорядоченность от 1 до 100.
C: <тип> <имя массива>[<размер>]
Пример: float A[100]; // Размер должен быть задан константной.
Обращение к элементу одномерного массива (доступ) в языке C и PASCAL организуется следующим образом:
<имя массива>[<индекс элемента>]
Индекс первого элемента массива в языке С равен 0. В языке C при объявлении массива его можно инициализировать.
<тип элементов><имя массива>[<размер>]=<список инициализаторов>.
<Список инициализаторов> - последовательность констант, разделённых запятыми. Если в списке инициализаторов меньше элементов, чем размерность массива, то оставшиеся элементы неявно инициализируются нулями.
Пример: int vect[3]={123};
Компилятор отводит под массив память размером (sizeof(<тип><размер массива>)) байтов.
Синтаксис объявления многомерного массива:
PASCAL: var <имя массива> : array[<тип индекса>,<тип индекса>] of <тип элементов>;
Пример: var MATR : array[1..10,1..20] of real;
C: <тип> <имя массива> [<размер1>][<размер2>]…
Пример:
#define n 3
#define m 2
int matr[n][m] = {{1,2},{3,4},{5,6}};
int matr[3][2] = {{0}}
Доступ к элементу многомерного массива в языке PASCAL:
<имя массива>[<индекс 1><индекс 2>…]
Доступ к элементу многомерного массива в языке C:
<имя массива>[<индекс 1>][<индекс 2>]…
12.2 Комбинированные типы данных
К комбинированным типам данных относятся в языке PASCAL – записи, а в языке C – структуры и объединения.
12.2.1 Записи в языке PASCAL
Запись - это пользовательский тип данных, элементы которого могут иметь различный тип.
Язык PASCAL дает возможность программисту описывать в программе типы данных. Для этих целей служит раздел описания типов: type <имя типа>=<тип>;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.