Добавил:
ПОИТ 2016-2020 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пустовалова 1 сем / OAIP_voprosy_i_otvety_-_beta.docx
Скачиваний:
67
Добавлен:
29.04.2018
Размер:
413.34 Кб
Скачать
  1. Указатели на указатели. Примеры использования.

#include <stdio.h>

int main(void)

{

int x, *p, **q;

x = 10;

p = &x;

q = &p;

printf ("%d", **q) ; /* вывод значения x */

return 0;

}

  1. Функции работы с динамическими массивами на языке с.

malloc void *malloc(unsigned s) - Выделить область памяти размером в s байт и возвратить адрес, при неудачном завершении возвращается NULL

free void *free(void p) - Освободить ранее выделенный с адреса p участок динамической памяти

calloc void * calloc(unsigned n, unsigned m) - Возвратить указатель на начало области динам. памяти для размещения n элементов длиной по m байт каждый, при неудачном завершении возвращается NULL

realloc void * realloc(void * p, unsigned s) - Изменить размер блока ранее выделенной динам. памяти до размера s байт, р - адрес начала изменяемого блока, при неудачном завершении возвращается NULL

  1. Операторы работы с динамическими массивами на языке С++.

Для динамического распределения памяти используются операции new и delete.

int *i;

i = new int(10); //создать динам. перем. типа int, равную 10

float *f;

f = new float; //создать динамическую переменную типа float

int *А = new int[5]; //создать динамич. массив А из 5 элементов

delete i; //освободить память по указателю i

delete f; //освободить память по указателю f

delete [] А; //освободить память, выдел. под массив А

  1. Объявление и определение функции.

Если требуется вызвать функцию до ее определения в рассматриваемом файле, или определение функции находится в другом исходном файле, то вызов функции следует предварять объявлением этой функции.

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

В конце прототипа записывается точка с запятой, а тело функции отсутствует.

Определения функции:

void main() – функция не возвращает значения

int main() – функция возвращает целое значение

float main() – функция возвращает вещ. значение

char main() – функция возвращает симв. значение

bool main() – функция возвращает логич. значение

  1. Вызов и использование функций.

адресное-выражение ([список-выражений])

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

void ff()

{ int i = 10;

cout<<"Функция - i="<<i<<endl;

}

void main()

{ int i = 1;

ff();

cout<<"i="<<i<<endl;

}

  1. Способы передачи аргументов в функции. Использование указателей.

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

#include <stdio.h>

int sqr (int x);

int main(void)

{

int t=10;

printf("%d %d", sqr(t), t);

return 0;

}

int sqr (int x) {

x = x*x; return x;

}

В данном примере значение аргумента, передаваемого в sqr(), 10, копируется в параметр х. Когда происходит присваивание х = х * х, модифицируется только локальная переменная х. Переменная t, используемая при вызове sqr(), по-прежнему содержит значение 10. Следовательно, на экране появится «100 10».

Второй способ – передача по ссылке. В данном методе копируется адрес аргумента. В подпрограмме адрес используется для доступа к настоящему аргументу, используемому при вызове. То есть, изменения, сделанные в параметре, влияют на содержимое переменной, используемой при вызове.

#include <stdio.h>

void swap (int *x, int *y);

int main(void)

{

int x, y;

x = 10;

у = 20;

swap(&x, &y);

printf ("%d %d", x, y);

return 0;

}

В данном примере переменной х присваивается значение 10, а у значение 20. Затем вызывается swap() с адресами х и у. Унарный оператор & используется для получения адресов переменных. Поэтому в функцию swap() передаются адреса х и у, а не их значения.

Соседние файлы в папке Пустовалова 1 сем