Стандартные типы данных: В языке Си существует пять элементарных типов данных. Это
1. символ – char;
2. целое число – int;
3. число с плавающей точкой – float;
4. число с плавающей точкой удвоенной точности – double;
5. переменная, не имеющая значений – void.
Замечание: Стандарт С99 добавляет еще три основных типа:
1. _Bool;
2. _Complex;
3. _Imaginary.
Все другие типы данных в Си создаются на основе элементарных типов.
Название типа | Нижняя граница | Верхняя граница | Точность | Байт |
bool | False | True | No | |
char | -128 | No | ||
short | -32768 | No | ||
int | -2 147 483 648 | 2 147 483 647 | No | |
long | -2 147 483 648 | 2 147 483 647 | No | |
float | 3.4*10-38 | 3.4*1038 | ||
double | 1.7*10-308 | 1.7*10308 |
Беззнаковые целые типы:
Название | Нижняя граница | Верхняя граница | Размер (байт) |
unsigned char | |||
unsigned short | |||
unsigned int | 4 294 967 295 | ||
unsigned long | 4 294 967 295 |
Неявное преобразование типов:
Тип данных | Старшинство |
long double | Высший |
double | |
float | |
long | |
int | |
short | |
char | Низший |
Спецификатор типов:
|
|
Спецификатор | Форма вывода |
%d | десятичное число со знаком |
%i | десятичное число со знаком |
%u | беззнаковое целое десятичное число |
%f | вещественное число с плавающей точкой |
%e | экспоненциальная форма |
%c | cимвол. |
%s | cтрока символов |
%o | восьмеричное число |
%x | шестнадцатиричное число |
%p | указатель |
%ld | long int |
%lf | long double |
Пример: /* Программа определения номера кода и размеров типов */
#include<stdio.h>
int main()
{
char ch;
unsigned char ch1;
int iVar1=90;
int iVar2=045;
int iVar3=0x45;
printf(" iVar1=%d, iVar2=%d, iVar3=%d\n", iVar1,iVar2,iVar3);
printf("Input symbol \n");
scanf("%c",&ch);
ch1=ch;
printf("Kod %c = %d %d.\n",ch,ch,ch1);
printf("char = %d\n",sizeof(char));
printf("short = %d\n",sizeof(short));
printf("int = %d\n",sizeof(int));
printf("long = %d\n",sizeof(long));
printf("float = %d\n",sizeof(float));
printf("double = %d\n",sizeof(double));
printf("long double = %d\n",sizeof(long double));
printf("dec=%d oct=%o hex=%x char=%c\n",iVar1,iVar1,iVar1,iVar1);
printf("z= %c 132=%c x5a=%c\n",'Z','\132','x5a');
printf("\'Z\'= %c \'\\132\'=%c \'x5a\'=%c\n",'Z','\132','\x5a');
// dec=90 oct=132 hex=5a char=Z
return 0;
}
Если на запрос программы вести русскую букву "я", то код этой буквы будет для типа char – -17, а для типа unsigned char – 239. Для объяснения этого результата необходимо рассмотреть представление числа в дополнительном обратном коде.
Классификация операций
Классификация операций идет по числу операндов.