- •Основные типы данных
- •Переменные и константы целого типа
- •Переменные типа int
- •Классы памяти и инициализация переменных
- •Переменные типа long
- •Константы целого типа
- •Переменные типа short
- •Переменные типа char
- •Константы типа char
- •Строки, или строковая константа, или литерал
- •Переменные вещественного типа
- •Константы вещественного типа
- •Именованные константы
- •Преобразование типов Преобразования при вычислении выражений
- •Преобразование типов при выполнении операций присваивания
- •Преобразования при приведении типов
Основные типы данных
Данные – это носители информации, которые обрабатываются компьютером.
Данные можно условно разделить на переменные и константы. С точки зрения записи данных в языке Си, различают их десятичное, восьмеричное и шестнадцатеричное представления.
Переменная – это обозначение величины в программе, значение которой может изменяться во время выполнения программы. Переменная – это поименованные ячейки оперативной памяти программы, хранящие данные, значения которых может изменяться. Содержание этих ячеек – это текущее значение переменной.
Тип переменной определяет:
1) сколько ячеек памяти выделить под данную переменную,
2) какие возможные значения эта переменная может принимать
3) какие возможные операции можно выполнять над этой переменной.
Константы – это изображение числовых, символьных или строковых величин в программе, значения которых постоянно и не изменяется во время выполнения программы.
Константы так же имеют тип, который может задаваться явно или присваиваться по умолчанию.
Ключевое слово void обозначает отсутствие типа и позволяет отложить определение типа. Тип void может присваиваться указателям и функциям, которые нечего не возвращают.
Переменные и константы целого типа
К целому типу относятся переменные и константы типа int , unsigned int , long , unsigned long , сhar , unsigned char , short .
Переменные типа int
Переменные типа int занимают в памяти байта (16 бит) и могут принимать значения от –215 до 215–1 (от –32768 до 32767). Старший разряд – знаковый. Отрицательные числа представляются с помощью дополнительного кода.
Зн |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Определение переменных типа int:
int a; int b; int c1,c2,c3;
Максимальное положительное число +215-1 или (0111 1111 1111 1111)2=32767,
Максимальное отрицательное число –215 или (1000 0000 0000 0000)2=–32768.
Если к максимальному положительному числу 32767 прибавим 1, то получим максимальное отрицательное число –32768. Если от максимального отрицательного числа -32768 отнимем 1, то получим максимальное положительное число 32767.
int а; a=32766; а+=4; //а+1=32767,а+2=–32768,а+3=-32767,а+4=-32766
а=–32765, а–=5; //а-1=-32766,а–2=-32767,а-3=-32768,а–4=32767,а–5=32766
Переменные беззнакового типа целой одинарной точности unsigned int . С помощью этого типа можно представить числа в диапазоне от 0 до 216–1 , то есть от 0 до 65535. Запись unsigned int равнозначна unsigned. Например:
unsigned int b; unsigned int n,m; unsigned k;
При прибавлении некоторого положительного значения числа к максимальному значению переменной типа unsigned int старшие разряды теряются. Например:
unsigned int b; b=65535; b+=2; //b+1=0, b+2=1.
b=0; b-=2; // b-1=65535, b-2=65534.
В языке Си имеется служебное слово, которое почти не используется signed , которое означает знаковый. Запись signed int равнозначна int.
Вводятся и выводятся данные типа int с помощью спецификаторов %d (в десятичном виде), %o (в восьмеричном виде), %x (в 16-ричном виде), %u (беззнаковые). Например:
scanf(“%d %u”, &a,&b);
printf(“a=%d b=%u\n”,a,b);