Структура программы языка си

Разработанный в начале 1970-х годов сотрудниками компании Bell Labs: Денис Ритчи и Брайан Керниган специально для разработки операционной системы Unix.

1.1. Алфавит языка Си включает:

  • буквы: строчные, прописные буквы латинского алфавита (a...z, A...Z) и символ подчеркивания _ (строчные и прописные буквы различаются)
  • цифры (0...9)
  • специальные знаки: . , ; + - * / = < > % & ! ( ) { } ^ | ? : [ ] ^ ~' " # \
  • ключевые слова: char, short, int, long, float, double, enum, struct, union, signed, unsigned, void, auto, extern, register, static, break, case, continue, default, do, else, for, goto, if, return, switch, while, sizeof, typedef.

Ключевые слова— это слова, используемые компилятором, по ним он распознает операторы и другие конструкции языка. Их нельзя использовать в программе в другом качестве.

Простейшей конструкцией является идентификатор. Идентификатор — это последовательность букв латинского алфавита (включая символ подчеркивания) и цифр, которая обязательно начинается с буквы. Идентификаторы используются как имена переменных, функций и типов данных. Идентификатор может быть произвольной длины, но в некоторых ЭВМ не все символы учитываются компилятором и загрузчиком.

Примеры идентификаторов.

Lab1, example_1, lab_12, count, temp.

Идентификаторы: lab1 и Lab1 – это два разных имени.

Описательные (наглядные) имена программных объектов (имена переменных, функций и типов данных) могут значительно улучшить понятность вашей программы и облегчить процесс отладки и модификации программы. Короткие имена переменных не ускорят выполнение программы.

Простые типы данных языка Си

Переменной выделяется ячейка оперативной памяти. В этой ячейке хранится значение. Доступ к значению ячейки по имени переменной. Размер ячейки определяет тип переменной.

Тип определяет:

  1. Размер выделяемой ячейки памяти.
  2. Формат внутреннего представления значения.
  3. Набор операций над значениями этого типа.
  4. Способы изображения констант этого типа.

Простые типы языка С.

Целый тип – определяет множество целых чисел.

Для определения переменных, которые хранят целые числа, используются:

Имя типа Объем памяти (байт) Внутреннее представление Диапазон значений
int Целое со знаком -231××××231-1
short Целое со знаком -215××××215-1
long Целое со знаком -231××××231-1
char Целое со знаком -27××××27-1
unsigned int Целое без знака 0××××232-1
unsigned short Целое без знака 0××××216-1
unsigned long Целое без знака 0×××232-1
unsigned char Целое без знака 0×××28-1


Пример определения переменных.

int a, b=-3, c=4;

short x=-2;

char y=65, y1=’A’;

unsigned int z=123;

Переменным a, b, c будут выделены ячейки размером 4 байта. Переменной x будет выделена ячейка размером 2 байта, переменной y выделяется ячейка размером 1 байт и хранит код символа, переменной y1 выделяется ячейка размером 1 байт и тоже для хранения символьного значения (кода символа), переменной z выделяется ячейка размером 4 байта и хранит значение в формате без знака.

4.1. Изображение констант целого типа

- в десятичной системе счисления

-123 123 78

- в восьмеричной системе счисления (константе предшествует цифра нуль)

057 0347 -078

- в шестнадцатеричной системе счисления (константе предшествует цифра нуль и символ х)

0хА7 0ХАА 0хFF

По виду константы компилятор определяет ее тип, т.е. размер ячейки.

Примеры констант и их тип.

Константа 123 входит в диапазон типа unsigned char, поэтому ее тип unsigned char, константа 0хFFFF занимает в памяти 2 байта, без знака, значит ее тип unsigned short.

Чтобы явно указать в программе тип константы используют следующее правило: справа от значения приписывают суффикс:

5l – 5 в формате long

78L – 78 в формате long

897UL – в формате unsigned long

897ul – в формате unsigned long

Самостоятельно. Определите системы счисления, в которых изображены константы и тип константы 128L, 0105L, OX2A11L.

Операции над значениями целого типа.

1) Арифметические: +, -, *, /, %. Это бинарные операции, т.е. над двумя операндами. Операнды целого типа. Результат операций число целое.

Примеры операций.

5+2 = 7; 5-2=3; 5*2=10; 5/2=2; 5%2=1 (остаток от деления)

2) Сравнение: >, <, <=, >=, = =, !=.

3) Логические: && (И), ||(ИЛИ), ! (НЕ). В языке С значение Истина –это целые числа отличные от нуля; Ложь – это 0.

4) Поразрядные операции: &, |, ~, <<, >>.

Вещественный тип данных

Используется для определения переменных, значениями которых должны быть дробные числа.

Таблица вещественных типов

Имя типа Объем памяти Внутреннее представление Размер мантиссы Размер порядка Диапазон и точность
float 4 байта (32 бита) С плавающей точкой 23 бита – мантисса; 1 бит – знак. 8 бит – порядок; ±3.4Е±38 Точность до 7 знаков после запятой
Double (с двойной точностью) 8 байт (64 бита) С плавающей точкой 52 бита – мантисса 1 бит – знак 11 бит – порядок ±1.7Е±308 Точность до 17 знаков после запятой
Long double 8 байт (64 бита) С плавающей точкой     ±3,4E±4932

Наши рекомендации