- •Алфавит языка
- •Идентификаторы
- •Структура программы
- •Переменные
- •Константы
- •Типы данных
- •Выражения и операции
- •Арифметические операции.
- •Выражения и операции
- •Операции отношения.
- •Логические операции.
- •Структура программы
- •Форматированный ввод с клавиатуры.
- •Scanf(“форматная_строка”, список_аргументов);
- •Форматированный вывод на экран.
- •Printf(“форматная_строка”, список_аргументов);
- •Операция присваивания.
- •Условный оператор if
- •If (выражение) оператор1; else оператор2;
- •If (выражение) оператор;
- •Оператор выбора (переключатель)
- •Операторы циклов
- •Цикл с предусловием while
- •Операторы циклов
- •Цикл с постусловием do-while
- •Операторы циклов
- •Цикл с параметром for
- •Массивы
- •Массивы
- •Одномерные массивы
- •Массивы
- •Массивы
- •Двумерные массивы
- •Массивы
- •Двумерные массивы
- •Операции над элементами двумерного массива
- •Функции
- •Функции
- •Ввод – вывод строк
- •Ввод – вывод строк
- •Структуры
- •Структуры
- •Функции работы с файлами
- •Указатели
- •Операции над указателями
- •Динамическое выделение памяти
Функции работы с файлами
fclose (имя указателя на файл); - закрытие файла
fcloseall (); - закрытие всех файлов
fprintf(имя указателя на файл, форматная_строка, список_аргументов); - запись в файл (например, fprintf(f,"%4d",c);)
fscanf(имя указателя на файл, форматная_строка, список_аргументов) – считывание информации из файла (например, fscanf(f,"%d",&c);) При достижении конца файла возвращается значение EOF.
fputs(строковая переменная, указатель на файл) – запись строки в файл; функция не добавляет символ перехода на новую строку в результирующую строку. Поэтому после fputs() необходимо вызывать функцию fputc() с символом новой строки в качестве первого аргумента:
fputc(′\n′, fp);
При записи в файл символ ‘\n’ трансформируется в символы возврата каретки и перевода строки.
fgets(строковая переменная, максимальное число читаемых символов плюс единица, указатель на файл) - читает строку символов из файла, функция возвращает указатель на строку при успешном завершении и константу NULL в случае ошибки либо достижения конца файла
Пример: fgets (s, 50, f);
функции прочитает из файла одну строку текста полностью, если ее длина меньше 50 символов с учетом символа '\n', который функция также сохранит в строке. Последним (50-ым) элементом строки s будет символ '\0', добавленный fgets(). Если строка окажется длиннее, то функция прочитает 49 символов и в конце запишет '\0'. В таком случае '\n' в считанной строке содержаться не будет.
Указатели в ЯП Си. Операции над указателями.
Указатели
Указатель — это адрес поля памяти, занимаемого программным объектом.
Для хранения адресов используются переменные типа «указатель». Значение указателя равно первому байту участка памяти, на который он ссылается. Формат описания указателей:
тип *имя_переменной;
Примеры описания указателей:
int *i; char *c; float *f;
После такого описания переменная i может принимать значение указателя на величину целого типа; переменная c предназначена для хранения указателя на величину типа char; переменная f — на величину типа float.
В заголовочном файле stdio.h определена константа — нулевой указатель с именем NULL.
Например:
f=NULL;
Нулевой указатель обозначает отсутствие конкретного адреса ссылки.
Указатель типа void указывает на неопределенный тип данных. При работе с такими указателями используется операция приведения типов:
void *p;
char c,s=’f’;
p=&s;
c=*(char*)p;
Значение указателя можно вывести на экран с помощью функции printf, используя спецификацию %p (pointer), результат выводится в шестнадцатеричном виде.
Пример:
int a = 5, *p;
p = &a;
printf(“a = %d , *p = %d , p = %p .\n”, a, *p, p);
Результат может быть следующим:
a = 5 , *p = 5 , p = FFF4 , p1 = FFF6, p2 = FFF8 .
Операции над указателями
Операция & — «взять адрес» дает в результате адрес переменной в памяти.
Пример:
int a=5;
char s='G';
float r=1.2E8;
Тогда допустимы операторы i=&a; c=&s; f=&r;
Операция * является знаком операции разадресации: «значение, расположенное по указанному адресу».
После приведенных выше описаний в записи выражений взаимозаменяемыми становятся а и *i, s и *c, r и *f.
Например, два оператора
х=а+2; и x=*i+2;
или a++ и (*i)++
тождественны друг другу
Динамическая и статическая память. Функции работы с динамической памятью в ЯП Си.
