Целочисленные типы данных в языке С

Целочисленные типы данных

В языке C (C++) есть следующие типы данных для представления целых чисел.

Название

Размер в байтах Минимальное значение Максимальное значение Комментарий

char

1 0 (-128) 255 (127) Знаковость не гарантируется
int 4 −2147483648 2147483647  
short (int) 2 -32768 32767  
long (int) 4 −2147483648 2147483647  На 64-битной платформе как long long
long long (int) 8 ≈ -9*1018 ≈ 9*1018  

К любому из этих типов может быть добавлен спецификатор signed или unsigned, гарантирующий, что переменная будет иметь или не иметь знак. Нижняя граница любого unsigned типа данных -- число 0.

Основным типом данных для работы с целыми числами является тип int, его рекомендуется использовать

Для определения размера типа в байтах можно использовать операцию sizeof.

Примеры

     a = sizeof(int);
     b = sizeof(long int);
     c = sizeof(unsigned long);
     d = sizeof(short);

Отметим также, что константы, в том числе восьмеричные и шестнадцатеричные, могут иметь модификатор unsigned. Это достигается указанием префикса u или U после константы, константа без этого префикса считается знаковой.

Примеры

  0xA8C   /* signed int */;
  01786l  /* signed long int */;
  0xF7u   /* unsigned int */;

Операции с целочисленными переменными

Для целочисленных переменных применимы следующие операции:

Операция Описание операции
+ Сложение
- Вычитание
* Умножение
/ Деление
% Остаток от деления

При этом для целых чисел и целочисленных переменных результатом операции деления является целочисленное деление, то есть целое число. Например, при делении 10 / 3 результатом будет 3.

Надо быть осторожным при делении отрицательного числа или при делении на отрицательное число, результат деления округляется в сторону нуля (а не в меньшую сторону, как это принято в математике).

Ввод-вывод целочисленных переменных

Для вывода значения типа можно использовать функцию printf с форматной строкой "%d". Например:

printf("%d", a);

Для вывода нескольких переменных можно указать в качестве первого параметра функции scanf строку, содержащую несколько выражений вида %d, сами значения выводимых переменных указываются после через запятые. Например, для вывода двух переменных через пробел можно использовать вызов:

printf("%d %d", a, b);

Обратите внимание на пробел между "%d %d", если его не поставить, выводимые значения сольются вместе.

Если в форматной строке указать последовательность "\n", то вместо нее будет осуществлен переход на новую строку.

Для считывания переменной используется функция scanf, используемая аналогичным способом:

scanf("%d", &a);

Обратите внимание на знак "&" (амперсанд) перед именем переменной - он указывает на то, что функции передается не значение переменной, а адрес этой переменной, чтобы функция scanf смогла изменить данную переменную. В языке С необходимо передавать указатели на переменные в функции, которые будут модифицировать эти переменные.