Talvez não tenham percebido, mas a variável "parâmetro" da função é temporária e apenas válida dentro da função.
Se passarmos uma variável existente como argumento para uma função, e nessa função houver manipulação da variável de alguma forma, não é essa variável que muda. Na verdade, a variável da função é uma cópia da variável que passamos.
Para fazer isto temos de usar pointers, mais especificamente endereços da variável (passar por referência), mas isso já é o seu próprio tema, que falarei no futuro.
Programa exemplo
#include <iostream> using namespace std; void function(int variable){ variable += 6; } int main(){ int variable = 5; function(variable); cout << variable << endl; }
- O inteiro variable de function é uma cópia do inteiro variable de main.
- Têm o mesmo nome só mesmo para vos mostrar que são variáveis diferentes, terem o mesmo nome ou não é indiferente.
- A variable de function torna-se 5 + 6, que é 11.
- A variable de main continua igual.
Então o output será
5
Referências
Sem comentários:
Enviar um comentário
Comente de forma construtiva...
Nota: só um membro deste blogue pode publicar um comentário.