Программирование на C шаг за шагом: шаг 2 – переменные и типы данных

 

C_logoТипы данных

В языке C есть несколько типов переменных, которые делятся на несколько базовых типов:

integers – целые числа, могут быть положительными и отрицательными, они определяются с помощью ключевых слов char, int, short, long и long long;
unsigned integers – целые числа, которые могут быть только положительными, они определяются как unsigned char, unsigned int, unsigned short, unsigned long и unsigned long long;
floating point – действительные числа (числа с дробями), опредеяются как float или double;
structures – будут рассмотрены позже.

Различные типы переменных опредяют границы их значений (и размер выделямой памяти). Тип char может хранить в себе значение от -128 до 127, тогда как тип long – от -2,147,483,648 до 2,147,483,647.

Учтите, что в C нет типа boolean. Как правило – он определяется следющим образом (константы мы рассмотрим в будущем):

#define BOOL char
#define FALSE 0
#define TRUE 1

Для определения строк в C используются массивы – их мы тоже рассмотрим позже.

Определение переменных

Для цифр обычно используется тип int. На большистве компьютеров он является 32-х битным числом, т.е. диапазон чисел может быть от -2,147,483,648 до 2,147,483,647 (так же, как в типе long).

Что бы определить переменные foo и bar – используется такой синтаксис:

int foo;
int bar = 1;

Переменная foo может использована, но так как он не была проинициализирована (не присвоено значение) – компилятор не знает её значение (и при использовании – присвоит ей случайное значение).

Переменная bar имеет значение 1, т.е. она уже проиницилизирована и может использоваться.

Теперь, займёмся математикой. Предположим, у нас имеются переменные a, b, c, d и e. Мы можем использовать операторы плюс, минус и умножение, а результат присвоить переменной a:

int a = 0,b = 1,c = 2,d = 3, e = 4;
a = b - c + d * e;
printf("%d", a); /* will print 1-2+3*4 = 11 */

Пример программы, которая вычисляет значение и вывод его на экран:

$ vim math.c
#include <stdio.h>

int main() {
  int a = 3;
  float b = 4.5;
  double c = 5.25;
  double sum;

  sum = a + b + c;

  printf("The sum of a, b, and c is %f.n", sum);
  return 0;
}
$ gcc math.c -o math
$ ./math
The sum of a, b, and c is 12.750000.