Функции; формальные и фактические аргументы. Имя функции как аргумент другой функции. — КиберПедия 

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Функции; формальные и фактические аргументы. Имя функции как аргумент другой функции.

2019-08-07 211
Функции; формальные и фактические аргументы. Имя функции как аргумент другой функции. 0.00 из 5.00 0 оценок
Заказать работу

Функция задаётся следующим образом:

тип_функции имя_функции (формальные аргументы)

{

       текст

}

имя_функции – это идентификатор;

формальные_аргументы – это список имен аргументов,

которые будут переданы функции.

Функция не может быть описана внутри других функций.

К заданной функции можно обратиться из любой другой функции, при этом возможны две формы обращения:

1. имя_переменной = имя_функции(фактические аргументы);

2. имя_функции(фактические аргументы);

       Фактические_аргументы должны соответствовать формальным по количеству, типу и порядку следования.

Классы памяти; область действия имен переменных. Блоки.

Класс памяти auto

Обычная переменная, объявленная внутри блока без указания для неё иного класса, имеет класс памяти auto по умолчанию. Пример:

int nVar = 5;

Такая переменная видна внутри блока.

Переменные с классом памяти auto размещаются в стеке.

Итак по умолчанию локальная переменная имеет класс памяти auto.

Класс памяти static

Переменные, объявленные как static, т.е. статические, сохраняют своё значение между вызовами.

Ещё одна тонкость. static переменная инициализируется только один раз. Если бы это было иначе, то значение статической staticVar обнулилось бы при повторном вызове.

По умолчанию все глобальные переменные являются статическими. И видны они только в своём файле.

Класс памяти extern

Класс памяти extern в C используем в двух случаях:

если переменная объявляется в программе ниже, чем ссылка на неё;

если переменная объявлена в другом модуле.

Класс памяти register в

Применение модификатора register есть рекомендация компилятору хранить данную переменную в регистре, а не в оперативной памяти. Не факт, что так и будет. Если программа часто обращается к переменной, то есть смысл объявить её с модификатором register.

Применять register можно только к near указателям и целому типу. Использовать register можно и при указании формальных параметров функций.

Класс памяти Время cуществования  переменной Область действия
 Auto  register  static  extern  extern static  Временно  Временно  Постоянно  Постоянно  Постоянно  Локальная  Локальная  Локальная  Глобальная  Глобальная (1 файл)

 

17. Преобразования данных при помощи функций sprintf и sscanf.

Библиотека языков C, C++ включает две функции sprintf и sscanf, с помощью которых реализуются прямые и обратные форматные преобразования данных в оперативной памяти. Техника их использования ничем не отличается от функций printf/fprintf и scanf/fscanf. Разница только в том, что первым аргументом новых функций является указатель на строку – массив типа char, расположенный в оперативной памяти. Для функции sscanf эта строка является источником данных, а для функции sprintf в эту строку помещаются результаты преобразования данных из машинного представления.

Форма записи:

 sscanf(str,"список_форматов", список_ввода);

 sprintf(str,"список_форматов \n",список_вывода);

К форматным преобразованиям в оперативной памяти можно прибегнуть и при работе с двоичным файлом. Перед записью в файл с помощью функции sprintf машинные форматы данных преобразуются в символьную строку, которая потом записывается в двоичный файл. По сути дела, такое же преобразование происходит при записи данных в текстовый файл

Аргументы функции main.

Имеется два встроенных аргумента функции main: argc и argv.                                                      Форма записи:

int main(int argc, char *argv[]) {...}

Аргумент argc типа integer содержит в себе количество аргументов командной строки.

Аргумент argv типа char - указатель на массив строк. Каждый элемент массива указывает на аргументы командной строки. Один параметр отделяется от другого пробелами.

argv[0] - полное имя запущенной программы

argv[1] - первая строка записаная после имени программы

argv[2] - вторая строка записаная после имени программы

argv[argc-1] - последняя строка записаная после имени программы

argv[argc] - NULL

19. Файлы; их описание, открытие текстового файла, закрытие файла.

Открытие файла: fopen()

Функцией fopen() управляют три основных параметра. Первый - имя файла, который следует открыть. Он является и первым аргументом fopen(). В нашем примере это "File". Второй параметр описывает, как должен использоваться файл:

"r" - файл нужно считать,

"w" - файл нужно записать,

"a" - файл нужно дополнить.

"w+" - новый текстовый файл открывается для записи и последующих многократных исправлений. Если файл уже существует, то предыдущее содержимое стирается. Последующие после открытия файла запись и чтение из него допустимы в любом месте файла, в том числе запись разрешена и в конце файла, т. е. файл может увеличиваться.

"r+" - существующий текстовый файл открывается как для чтения, так и для записи в любом месте файла; однако в этом режиме невозможна запись в конец файла, то есть недопустимо увеличение размеров файла.

"a+" - текстовый файл открывается или создается, если файла нет, и становится доступным для изменений, т. е. для записи и для чтения в любом месте; при этом, в отличие от режима "w+", можно открыть существующий файл и не уничтожать его содержимое; а в отличие от режима "r+" в режиме "a+" можно вести запись в конец файла, то есть увеличивать его размеры.

Используемые коды являются строками, а не символьными константами.

При применении "r" открывается существующий файл. При двух других применениях тоже будет открываться существующий файл, но если такого файла нет, он будет создан. Если вы используете "w" для существующего файла, то старая версия его стирается, и ваша программа начинает записывать на чистое место. Третий параметр является указателем на файл. Это значение возвращается самой функцией.

Форма записи:

FILE * in;

in = fopen (" File "," r ");

Теперь in является указателем на файл "File". С этого момента программа ссылается на файл при помощи указателя in, а не по имени File

FILE *fopen()

Если fopen() не способна открыть требуемый файл, она возвращает значение NULL, определенное в stdio.h как 0.

Закрытие файла:

fclose(in)

Аргумент функции является указателем на файл. Для более серьезной программы нужно смотреть, успешно ли закрыт файл. Функция fclose() возвращает значение 0, если файл закрыт успешно, и -1 в противном случае

20. Файлы; их описание, открытие двоичного файла, закрытие файла.

FILE*in – объявление файла (in – индентификатор)

fclose(in) – закрытие файла

«rb» — открываем двоичный файл в режиме чтения;

«wb» — создаем двоичный файл для записи; если он существует, то его содержимое очищается;

«ab» — создаем или открываем двоичный файл для дозаписи в конец файла;

«rb+» — открываем существующий двоичный файл в режиме чтения и записи;

«wb+» — открываем двоичный файл в режиме чтения и записи, существующий файл очищается;

«ab+» — двоичный файл открывается или создается для исправления существующий информации и добавления новой в конец файла.

21. Чтение из файла, запись в файл (с использованием форматов).

Объявление файла производится следующим образом:

     FILE указатель файла1[,..,указатель файлаN];

Например

                              FILE *in, *out, *f1;

       Открытие файла:

 указатель_файла=fopen(имя_файла, режим_работы);

       Возможны следующие режимы работы:

r – открытие файла на чтение (при этом открываемый файл должен существовать);

w – открытие файла на запись (если открываемого файла нет, то он будет создан; если этот файл уже есть, то его содержимое стирается);

a – открытие файла на дозапись (при этом, если файла нет, то он создается);

r+ – открытие файла на чтение и запись (при этом открываемый файл должен существовать);

w+ – открытие файла на чтение и запись (при этом содержимое открываемого файла стирается);

a+ – открытие файла на чтение и дозапись (при этом, если файла нет, то он создается).

Работа со стандартным файлом:

scanf (управляющая строка, данные);

printf (управляющая строка,данные);

gets (имя_строки);                                 

puts(строка или имя строки);

getchar();

getch();

getche();

putchar(символ или имя_символа)

22. Чтение из файла, запись в файл (без формата).

Работа с произвольным файлом:

fscanf(указатель_файла,управляющая_строка, данные);

fprintf(указатель файла,управляющая строка, данные);

fgets (имя_строки,колич.симв.,указ._файла);

fputs (строка или имя_строки,указ._файла);

getc (указатель_файла);                           

putc(символ или имя_символа,указ._файла);

Двоичные файлы. Бесформатный ввод-вывод:

fread(куда, размер, сколько, указатель_файла); – для чтения из файла,

fwrite (откуда, размер, сколько,указатель_файла); – для записи в файл.

При этом, в fopen режим дополняется опцией ”b”(двоичный файл), например,

"wb+" (по умолчанию действует ”t” — текстовый файл).

Указание позиции при работе с файлом:

ftell (указатель файла);

fseek(указатель_файла, величина_сдвига, точка_отсчета);

SEEK_SET – начало файла,

SEEK_CUR – текущая позиция,

SEEK_END – конец файла.


Поделиться с друзьями:

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.022 с.