
- •1. Инкапсуляция
- •2. Полиморфизм
- •3. Наследовние
- •3) Базовые конструкции
- •12)Описание и определение функций
- •13)Назначение прототипа функции
- •14)Операторы
- •15)Массивы-конечная совокупность данных одного типа
- •20)Передача параметров в функции
- •24)Случаи, когда нельзя обойтись без указателей
- •2 5) Динамическое распределение памяти
- •27)Работа с указателями на примере строк
- •30)Сегмент данных для хранения констант
- •31)Функции стандартной библиотеки для работы со строками string.H
- •21) Функция strtok
- •33)Пример использования массивов указателей
- •22) Указатели на функции.
- •Стандартные операции , определенные для предпроцессора
- •Переопределение макросов
- •34)Тэги(tags)
- •37)Динамические структуры данных, основанные на структурах-двунаправленные списки
- •38)Представление списков в программе
- •39)Основные операции над двунаправленными списками
- •40)Инициализация структур
- •41)Объединения
- •38) Открытие потока ввода-вывода,
- •39)Форматированный и неформантированнй ввод и вывод
- •40)Работа с указателем текущей позиции в файле.
- •Главные признаки объектно-ориентированного подхода (Alan Kay).
12)Описание и определение функций
Определение функции должно располагаться в глобальной области видимости, до начала функции main. Определение функции состоит из заголовка и тела. Заголовок функции включает в себя: тип возвращаемого значения, идентификатор или имя функции, список аргументов или параметров, тело функции. После того как создано определение функции, её можно вызвать.
[тип] имя([список формальных параметров])
описания формальных параметров;
{описания;
операторы;}
13)Назначение прототипа функции
объявление функции, которое не содержит тело функции, но указывает имя функции, арность, типы аргументов и возвращаемый тип данных.
Пример: int foo(int n);используется для проверки.
#include <stdio.h>
/*
* При реализации этого прототипа компилятор выдаст сообщение об ошибке
* в main(). Если он будет пропущен, то и сообщения об ошибке не будет.
*/
int foo(int n); /* Прототип функции */
int main(void) /* Вызов функции */
{
printf("%d\n", foo()); /* ОШИБКА: у foo отсутствует аргумент! */
return 0;
}
int foo(int n) /* Вызываемая функция */
{
if (n == 0)
return 1;
else
return n * foo(n - 1);
}
14)Операторы
15)Массивы-конечная совокупность данных одного типа
Имя массива – адрес нулевого элемента
Можно использовать явную и неявную инициализацию(int x[10], int x[3]={1,2,3})
Z[100]={1,2,3} если описание не полное, то остальные обнуляются. Можно задавать неявно z[]={1,2,3,4,5}; <- (z[5])
Многомерные массивы
double d[2][3]; d[0][0]=1.76; double d[2][3]={1,2,3,4,5,6}; char ch[ ][2]={‘A’, ‘B’, ‘C’, ‘D’};
Для многомерных массивов неявно можно задавать только первую размерность.
Передача массивов в функции
Функция может инициализировать массив, прибавить к массиву значения или вывести элементы массива на экран. Когда вы передаете массив в функцию, вы должны указать тип массива. Нет необходимости указывать размер массива. Вместо этого вы передаете параметр например number_of_elements, который содержит количество элементов в массиве void some_function(int array[], int number_of_elements);
20)Передача параметров в функции
В C++ можно передавать параметры в функцию по значению (func2) и по ссылке (func1):
void func1 ( A& a ); void func2 ( A a );
Здесь кроется засада: в func2 внутрь функции передается на самом деле не a, а его копия.
Пример,swap
void swap (int x; int y) {
int tmp=x; x=y; y=tmp; }
int main(){
int a=5, b=10;
swap (a,b);
printf(“a=%d\t b=%d\n”,a,b);
…
}
При вызове функции swap создаются 2 локальные переменные(изменяются лок. переменные). Чтобы ф-ия изменяла внешние переменные переменные должны быть или глобальные,либо должны передавать их адреса.
22)Указатели – это переменная, которая хранит адрес другой переменной или некоторой функции. Указатель не является самостоятельным типом, он всегда связан с каким-либо другим типом.
Значение указателя это целое число, множество допустимых значений этого множества адресов. Множество допустимых значений определяется видом указателя
нетипизированный
типизированный на данные
указатель на функцию