Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТТП (методичка).doc
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
2.24 Mб
Скачать
    1. Функция main

Каждый исполняемый файл на языке Си (программа) должен содержать функцию main. Код, задающий тело функции main, заключается в фигурные скобки { и }. Общая структура функции main такова:

void main()

{

/* Код, реализующий main */

}

Фактически функция main является местом, откуда начинается выполнения любой программы на языке Си.

Внимание!

Настоятельно рекомендуется сдвигать текст, заключенный в фигурные скобки, на 4 (четыре) или более пробелов вправо от уровня фигурных скобок. Фигурные скобки обрамляют блок. Отступ внутри блока облегчает чтение и понимание программы.

После описания функции main не следует ставить точку с запятой.

    1. Глобальные и локальные переменные

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

Глобальные переменные являются видимыми (т.е. доступными) во всем файле, в котором они описаны.

Локальные переменные являются видимыми только внутри той функции, в которой они описаны.

Листинг 6 — Пример использования глобальных и локальных переменных

/* vars.c – глобальные и локальные переменные */

#include <stdio.h>

#include <conio.h>

float a; /* глобальная переменная */

void output();

void main()

{

int b = 10; /* локальная переменная для main */

clrscr();

a = 1.2345;

output();

printf(“\nЗначение \”a\” в функции main %.3f”, a);

printf(“\nЗначение \”b\” в функции main %d”, b);

}

void output()

{

int b = 100; /* локальная переменная для output */

printf(“\n\nЗначение \”a\” в функции output %.3f”, a);

printf(“\nЗначение \”b\” в функции output %d”, b);

a = 5.4321;

}

Рисунок 21 — Результат выполнения программы vars.c

  1. Операторы и операции

Основу языка Си составляют операторы. Оператором называют выражение, вслед за которым стоит точка с запятой. В Си точки с запятой используются для разделения операторов.

Принято группировать все операторы в следующие классы: присваивания, вызов функции, ветвление (условие) и цикл.

В операторе присваивания используется операция присваивания =, например:

c = a * b;

Действие такого оператора можно описать следующими словами: «c присваивается значение a, умноженного на значение b». Значение, присваиваемое переменной c, равняется произведению текущих значений переменных a и b.

Операторы часто относятся более чем к одному из четырех классов. Например, оператор

if ((c = cube(a * b)) > d)

...

составлен из представителей следующих классов: присваивание, вызов функции и ветвление. Гибкость языка Си, позволяющая смешивать в одном операторе операторы разных классов, делает язык весьма выразительным и дает возможность экономить выражения. Однако если злоупотреблять предоставленными возможностями, то может получиться правильный, но запутанный код.

Группа операторов, заключенная в фигурные скобки, является составным оператором. Составные операторы можно использовать везде, где допускается единичный (отдельный) оператор. Внутри составного оператора каждый единичный оператор должен завершаться символом «точка с запятой».

К понятию оператора вплотную примыкает понятие операции. Различают следующие группы операций: арифметические операции, операции отношения, логические операции, побитовые операции, операции присваивания, операция вычисления размера (sizeof) и операция следования (запятая). Приоритет и порядок выполнения операций приведены в таблице.

Таблица 4 — Приоритет и порядок выполнения операций

Категория

Операции

Описание

Порядок выполнения

1

2

3

4

Приоритетные

()

[]

->

.

Вызов функции

Выделение элемента массива

Выделения элемента структуры, адресуемой указателем

Выделение элемента структуры

Слева направо

Унарные

!

~

+

-

++

--

&

*

sizeof

new

delete

Логическое отрицание

Побитовое отрицание

Унарный плюс

Унарный минус

Инкремент на 1

Декремент на 1

Определение адреса

Обращение по адресу

Определение размера в байтах

Динамическое выделение памяти

Освобождение памяти

Справа налево

Арифметические

*

/

%

Умножение

Деление

Деление по модулю (остаток)

Слева направо

+

-

Сложение

Вычитание

–– «» ––

Сдвига

<<

>>

Сдвиг влево

Сдвиг вправо

–– «» ––

Сравнения

<

<=

>

>=

Меньше, чем

Меньше или равно

Больше, чем

Больше или равно

–– «» ––

==

!=

Равно

Не равно

–– «» ––

Таблица 4 — Продолжение

1

2

3

4

Битовые

&

Побитовое И

–– «» ––

^

Побитовое исключающее ИЛИ (XOR)

–– «» ––

|

Побитовое ИЛИ

–– «» ––

Логические

&&

Логическое И

–– «» ––

||

Логическое ИЛИ

–– «» ––

Присваивания

=

*=

/=

%=

+=

-=

&=

^=

|=

<<=

>>=

Присваивание

Присваивание произведения

Присваивание частного

Присваивание остатка

Присваивание суммы

Присваивание разности

Присваивание побитового И

Присваивание побитового исключающего ИЛИ

Присваивание побитового ИЛИ

Присваивание сдвига влево

Присваивание сдвига вправо

Справа налево

Запятая

,

Последовательное вычисление

Слева направо