- •Данные Скалярные данные Целые данные: char, short, int, long.
- •Указатели
- •If( целое_выражение )
- •Оператор продолжения цикла
- •Функции
- •Указатели ,строки
- •Структуры, списки.
- •Переименование типов
- •Списки.
- •Работа с файлами
- •6.2 Описание и передача параметров
- •6.4 Указатель на функции
- •7.0 Переименование типов. Классы памяти. Область видимости
- •7.1 Переименование типов
- •7.2 Классы памяти:
If( целое_выражение )
оператор 1
else
oператор 2
Условный оператор может быть не полным (без else).
Переключатель
switch( целое_выражение ){
case константа_1:
операторы
case константа_2:
операторы
...
...
default:
операторы
}
Вычисляется целое_выражение и сравнивается с константами, если нашлась равная, то выполняются соответствующие операторы, если ни одной не нашлось, то операторы в фразе default. Фраза default может быть опущена.
Если начнет выполняться один case то выполняется все следующее за ним – эффект проваливания. Поэтому обычно операторы очередного case завершаются оператором break.
Оператор прерывания цикла
преждевременный выход из switch и из циклов.
Цикл пока с предусловием:
while( целое_выражение ) оператор
оператор м.б. составным
Цикл пока с постусловием:
do операторы while( целое_выражение );
Хотя бы один раз цикл выполнится. Выполнится пока условие – целое_выражение истинно.
Цикл for
for( выражение1; целое_выражение2; выражение_3 ) оператор
выважение1 выполняется всегда один раз до начала выполнения тела цикла – оператор.
целое_выражение2 – это условие продолжения цикла с предусловием.
После очередного выполнения тела цикла, вычисляется выражение_3, т.е. оно вычисляется столько раз, сколько раз выплняется тело цикла.
Пример: for( i = 1; i <= maxi ;i = i + 1 ) тело цикла;
Замечание: любое из трех выражений может быть опущенно. Если опущенно выражение_2, то цикл бесконечный.
Оператор продолжения цикла
оператор continue служит для продолжение цикла, т.е. перехода к следующей итерации цикла.
Функции
В языке СИ есть только функции.
В СИ нет вложенного описания функции.
Программа на СИ состоит как минимум из одной функции main( ).Именно из нее начинается выполнение программы
Синтаксис описания функции
mun _ имя функции (список формальных параметров)
{
описание данных
исполняемые операторы
}
Пример: #include <stdio.h>.- проверка параметров функции
woid main( )
{ printf (“Это наша первая программа на СИ\n”);
}
/*main*/ -комментарий
#include -деректива включения файла < > в нашу программу
woid -mun функции которая ничуго не возвращает.
Для возврата из функции используется оператор RETURN;
Если он есть =>возврат осуществляется но возвращения значения нет, иначе RETURN (выражение)
Указатели ,строки
Строковая константа это выражение заключ. в ковычки
“…” -char [ ] -массив символов
‘ c ’ -char
Строкой считается совокупность символов, которая завершается нулевым байтом.
Пустая строка - в самом первом байте стоит 0.
string.h -библиотека для работы со строками.
Указатели:
char s[20]
s[i]
*(s+1) - обращение к итому символу
i - относительный индекс размерности элементов.Если элемент 25 байт, то i=25*i.
Если i не индекс а указатель, то это еще эффективней.
Пример: найти символ в строке.
# include <stdio.h>
main ( ) {
char c;
char S[ ] = “.................................................”;
int i OKF ind = 0;
c = ‘a’;
for (i = 0; S[i]:= ‘\ 0’; i ++)
if (S[i] c) {
OKFind = 1;
break;
}
if (OKFind == 1)
printf (“Ура\ n”);
} / *main* /.
Операция “,” - последовательность выражений через “,” тоже вуражения
Из программы сделаем функцию,которая определяет наличие символа в строке.
Входные параметры функции:
указатель на строку , в которой искать
символ, который искать.
Возвращаемое значение:
указатель на найденый символ (не 0) или NULL, если символ не найден.
char *CharFind(char*S, char c) {
for ( S&&*S != c , S + +);
if (*S) return (S);
return (NULL);
} / * CharFind * /
Параметры в СИ всегда передаются по значениюю (внутри функции создается копия и все выполняется с копией), за исключением массивов, которые всегда передаются по i-ссылке.(передается адрес; измен., перемещается в вызываюющей программе).
S - локальна переменная - указатель на char с начальным значением - указатель на начало, поэтому в for первое значение опущено.