
- •Этапы создания исполняемой программы
- •Команда cout.
- •Команда cin.
- •Использование управляющих последовательностей при выводе данных.
- •Основные (стандартные) типы данных
- •Область действия переменных
- •Автоамтические и статические переменные.
- •Математические операции
- •Операции инкремента и декремента.
- •. Условная операция (?:)
- •Указатель. Определение адреса переменной. . Указатель. Определение адреса переменной
- •Директива препроцессора define.
- •Директива препроцессора include.
- •Понятие функции. Вызов функции. Формальные и фактические параметры функции.
- •Понятие функции. Передача данных по значению.
- •Понятие функции. Передача данных по адресу.
- •Возвращаемые значения функции.
- •Понятие функции. Использование прототипов функций.
- •Функция get() и put().
- •Функция getch().
- •Функции printf sprintf.
- •Понятие массива. Объявление и инициализация одномерного массива. Доступ к элементам одномерного массива.
- •Понятие массива. Объявление и инициализация двумерного массива. Доступ к элементам двумерного массива.
- •Указатели. Массивы указателей. Операции над указателями.
Функции printf sprintf.
эти две функции предназначены для форматного вывода и что отличаются они тем, что функция printf() производит форматирование и выводит результаты в выходной поток (браузер или консоль), а sprintf() после осуществления требуемого форматирования просто возвращает строку.
С одной стороны этими функциями можно пользоваться просто как функциями вывода:
<?
printf("Hello!"); // выводит "Hello!"
sprintf("Hello!"); // сама по себе ничего не выводит,
$str = sprintf("Hello!"); // а просто возвращает строку,
printf($str); // которую затем можно вывести в выходной поток
?>
Но использовать их только так, как мы сейчас продемонстрировали – простое расточительство, так как эти функции способны на большее. Дело в том, что аргумент format этих функций представляет собой строку, содержащую специальные символы, использующиеся при форматировании данных, содержащихся в списке аргументов. Эти спецсимволы называются спецификаторами преобразования, а символы, которые остаются
Понятие массива. Объявление и инициализация одномерного массива. Доступ к элементам одномерного массива.
Массивы предназначены для хранения множества значений одного типа.Прежде чем использовать массив, его нужно определить. Определение массива включает в себя: тип данных хранящихся в массиве, имя массива и в квадратных скобках указывается количество элементов массива:
int array[10];
В этом коде мы определили массив с идентификатором (именем) array (массив) из десяти элементов типа int.
В таком виде, все элементы массива ещё неинициализированы. Чтобы инициализировать их при обьявлении, нужно использовать следующий синтаксис:
int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
При этом, первому элементу массива присваивается значение 0, а последнему - значение 9.
Чтобы присвоить элементам массива значение, можно воспользоваться циклами. Самым подходящим для этого будет цикл for.
int array[10]; //определение массива
for (int i = 0; i < 10; i++)
{
array[i] = i;
}
Здесь мы обращаемся к каждому элементу массива через индекс - число стоящее в квадратных скобках. При каждой итерации цикла оно принимает значения от нуля до 9.
Заметьте, что нумерация индексов начинается с нуля. Поэтому число индексов всегда на единицу меньше числа элементов массива.
За исключением квадратных скобок и индекса, элемент массива используется также как и любая переменная.
В языке С массивы при объявлении можно инициализировать. Общая форма инициализации массива аналогична инициализации переменной:
тип имя_массива[размер1]...[размер№] = {список_значений};
Список_значений представляет собой список констант, разделенных запятыми. Типы констант должны быть совместимыми с типом массива. Первая константа присваивается первому элементу массива, вторая — второму и так далее. После закрывающейся фигурной скобки точка с запятой обязательна.
В следующем примере массив целых из 10 элементов инициализируется числами от 1 до 10:
int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Здесь элементу i[0] присваивается 1, a i[9] — 10.
Символьные массивы, содержащие строки, можно инициализировать строковыми константами:
char имя_массива[размер] = "строка";
В следующем примере массив str инициализируется фразой "Язык С":
char str[9] = "Язык C";
Это объявление можно записать так:
char str[9] = {'Я', 'з', 'ы', 'к', ' ', 'C', '\0'};
Строка кончается нулевым символом, поэтому при объявлении необходимо задавать размер массива, достаточный для того, чтобы этот символ поместился в нем. В предыдущем примере размер строки задан равным 7, хотя во фразе "Язык С" содержится 6 символов. Если строка инициализируется строковой константой, компилятор автоматически добавляет нулевой символ в конец строки.
Первый способ связан с применением обычных индексных выражений в квадратных скобках, например: array[18] = 3 или array[i + 3] = 9. При данном способе доступа записываются два выражения. Второе выражение должно быть заключено в квадратные скобки. Одно из данных выражений должно являться указателем, а второе — выражением целого типа. Последовательность записи данных выражений может быть произвольной, однако в квадратных скобках следует записывать выражение, следующее вторым. Поэтому записи array[16] и 16[array] будут являться одинаковыми и обозначающими элемент массива с номером шестнадцать. Указатель, который используется в индексном выражении, не всегда является константой, которая указывает на какой-либо массив, это может быть и переменная. Например, после выполнения присваивания ptr = array доступ к шестнадцатому элементу массива можно получить, применяя указатель ptr в форме ptr[16] или 16[ptr]. Второй способ доступа к элементам массива связан с применением адресных выражений и операции разадресации в виде *(array+16) = 3 или *(array+i+2) = 7. При данном способе доступа адресное выражение соответствует адресу шестнадцатого элемента массива, тоже может быть записано различными способами: *(array+16) или *(16+array). При работе на компьютере первый способ приводится ко второму, т. е. индексное выражение стано- вится адресным. Для ранее рассмотренных примеров array[16] и 16[array] преобразуются в *(array+16). Для доступа к начальному элементу массива, т. е. к элементу с нулевым индексом, можно применять просто значение указателя array или ptr. Любое из присваиваний *array = 2; array[0] = 2; *(array+0) = 2; *ptr = 2; ptr[0] = 2; *(ptr+0) = 2; присваивает начальному элементу массива значение 2, но быстрее всего выполнятся присваивания *array = 2 и *ptr = 2, так как в них не требуется выполнять операции сложения.