Что вернёт функция g(), если её вызвать в C++? int h(int *q, int *p) { *p += 1; *q += 1;...

0 голосов
106 просмотров

Что вернёт функция g(), если её вызвать в C++?

int h(int *q, int *p) {
*p += 1;
*q += 1;
return *p + *q;
}
int g() {
int a = 2, b = 4;
return h(&a, &a) + h(&b, &b);
}


Информатика (32 баллов) | 106 просмотров
0

Выведется 20, а что это значение сумма переменных или сумма адресов, смысла писать нет, советую прочитать про указатели в C++

Дан 1 ответ
0 голосов
Правильный ответ

Эта функция выведет 20.
Сначала мы передаём 2 в функцию h как указатель.
Увеличиваем 2 на один, а потом ещё на один, у нас выходит 4.
Возвращаем 4+4=8.
Потом мы передаём 4 в функция h как указатель.
Увеличиваем 4 на один, а потом ещё на один, у нас выходит 6.
6+6=12.
Ну а потом мы возвращаем сумму наших двоих функций h.
12+8 = 20.

(1.5k баллов)