Вопрос не могу понять код с++ *a, int &b, int c

Регистрация
25 Ноя 2012
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
#include
using namespace std;
void f(int *a, int &b, int c) {
*a = *a + 1;
b = b – 1;
c = c * 2;
cout << *a << b << c;
}
int main()
{
int a[] = {9, 5, 1, 7, 8};
f(a+1, a[1], *a+1);
for (int i=0; i<5; i=i+1)
cout << a;
return 0;
}
Результат :552095178

я вот не пойму, почему не принимаются действия в начале? гда а=а+1 и б= б-1, а сразу выводятся две пятерки? влияет ли на это символы перед буквами? (*a, int &b, int c)
 
>я вот не пойму, почему не принимаются действия в начале? гда а=а+1 и б= б-1, а сразу выводятся две >пятерки? влияет ли на это символы перед буквами? (*a, int &b, int c) Здесь есть волшебство указателей: И a и b работают с одним элементом массива - a[1].Поэтому он не изменяется в итоге и выводится два раза.
 
Назад
Сверху