Ссылки как аргументы функции?

У меня проблемы со ссылками. Рассмотрим этот код:

void pseudo_increase(int a){a++;}  
int main(){  
    int a = 0;
    //..
    pseudo_increase(a);
    //..
}

Здесь значение переменной a не будет увеличиваться, так как передается ее клон или копия, а не сама переменная.
Теперь рассмотрим другой пример:

void true_increase(int& a){a++;}
int main(){  
    int a = 0;
    //..
    true_increase(a);
    //..
}

Здесь говорится, что значение a увеличится - но почему?

При вызове true_increase(a) будет передана копия a. Это будет другая переменная. Следовательно, &a будет отличаться от истинного адреса a. Так как же увеличивается значение a?

Поправьте меня, если я ошибаюсь.

6
задан Meysam 19 January 2012 в 06:12
поделиться