Beruflich Dokumente
Kultur Dokumente
net
Pg. 1 de 2
www.tiexpert.net
Pg. 2 de 2
var2 que so a e b dentro da funo. Ou seja, o que foi alterado na verdade foi o valor de a que passou para b e b que passou para a. A troca aconteceu, mas no com as variveis que queramos. Mas, se ao invs de utilizarmos o valor da varivel, utilizssemos sua referncia de memria, ou seja, o seu ponteiro. Dessa forma, a funo saberia que o valor a ser tratado j existe e est exatamente no local da memria que indicarmos. Portanto, o valor que seria tratado dentro da funo no seria uma cpia, mas a varivel original. Ento, vamos reformular a funo do exemplo anterior usando a referncia dos ponteiros (endereos contidos nos ponteiros) como argumentos dessa vez. #include <iostream> using namespace std; int trocar (int &a, int &b) { int aux; aux = a; a = b; b = aux; } int main (void) { int var1 = 10, var2 = 50; trocar (var1, var2); cout << "O valor de var1 e " << var1 << endl; cout << "O valor de var2 e " << var2 << endl; system("pause"); } Neste caso, usamos o endereo como forma de manipulao, e ento, conseguimos trocar os valores de var1 e var2, pois a funo no copiou os valores dessas variveis, ele manipulou diretamente seus endereos de memria. Aqui, podemos destacar mais uma vatangem que foi a economia de memria. Pois, no foi criado mais um espao de memria, j que ns utilizamos diretamente o endereo de memria j alocado anteriormente por var1 e var2.
Autor: Denys William Xavier Este artigo est sob Licena Creative Commons Para ver uma cpia desta licena, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
http://www.tiexpert.net/programacao/c/ponteiro-como-argumento-de-funcao.php