Типы данных. Операции над данными

Стандартные типы данных: В языке Си существует пять элементарных типов данных. Это

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. Для объяснения этого результата необходимо рассмотреть представление числа в дополнительном обратном коде.

Классификация операций

Классификация операций идет по числу операндов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: