Publicidade

Entre para seguir isso  
Seguidores 0
Leonardo Peixoto

[Resolvido] Exercício de parâmetros C++

Pessoal estou estudando parâmetros mas não está entrando direito in my head, poderam esboçar a resolução do seguinte exercício?:

 

5) Faça uma função que incremente o valor de um número passado por parâmetro. Utilize a passagem de parâmetro por referência para fazer o incremento.

 

Grato !

Editado por Mário Monteiro
Retirada a palavra "HELP" do Titulo ou Descrição
0

Compartilhar este post


Link para o post
Compartilhar em outros sites
funcao(int *variavel)
{
  variavel+=10;
}
main(){
int variavel;

scanf(&variavel);
funcao(&variavel);
}

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa é verdade, é por parametro haha, então é o seguinte, nesse tipo de passagem voce faz uma copia do valor que voce possui, portanto para de fato mudar o valor da variavel que voce tem terá de retornar um valor da funcao e atribuir isso a sua variavel.

 

int funcao(int variavel)
{
  return (variavel+10)
}
main(){
int variavel;

scanf("%d",&variavel);
variavel = funcao(variavel);
}

Editado por Shurd
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que estejam confundindo 'passagem por parâmetro' e 'passagem por referência'. Como a pergunta é sobre C++, não vou tentar responder. Se fosse em C, eu argumentaria que 'passagem por referência' é simplesmente 'passagem por valor do endereço' do argumento.

 

Independente da linguagem que se usa, é bom seguir a convenção de que parâmetro é o que uma função recebe, e argumento é o que se passa para ela. Então:

 

funcao func(param1, param2) 
{
   // param1 e param2 são parâmetros de func
}

// ...

func(1, 2); // 1 e 2 são argumentos passados para func

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Faz-se passagem por referência em C++ usando o operador & nos parâmetros.

 

Exemplo:

 

#include <iostream>

void sum10( int &value )
{
   value += 10;
}

int main( void )
{
   int valorTeste = 0;

   std::cout << "O valorTeste antes da chamada à sum10() é: " << valorTeste << std::endl;
   sum10(valorTeste);

   std::cout << "O valorTeste após a chamada à sum10() é: " << valorTeste << std::endl;

   return 0;
}

 

O output será:

 

O valorTeste antes da chamada à sum10() é: 0

O valorTeste após a chamada à sum10() é: 10

 

Se, por acaso, usássemos C, teríamos que passar um ponteiro da variável e incrementar o ponteiro:

 

#include <stdio.h>

void sum10( int *value )
{
   *value += 10;
}

int main( void )
{
   int valor_teste = 0;

   printf("O valorTeste antes da chamada à sum10() é: %d\n", valor_teste);
   sum10(&valor_teste);

   printf("O valorTeste após a chamada à sum10() é: %d\n", valor_teste);

   return 0;
}

 

O output será o mesmo.

 

Lembrando que o primeiro exemplo só funciona em C++, enquanto o segundo funciona em C e C++. O segundo modo é mais um "hack" do que uma solução verdadeira. Por isso, e como você quer passagem por referência em C++, imagino que você esteje à procura do primeiro modo.

 

 

Abraços :D

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código acima está errado.

 

O que, especificamente, você não entendeu sobre o conceito de 'parâmetro'?

Tudo kkkk

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahnn, eu expliquei no meu último post... Você leu os outros comentários?

 

 

Abraços :D

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahnn, eu expliquei no meu último post... Você leu os outros comentários?

 

 

Abraços :D

Li sim Renato brigadão pela explicação vai me ajudar bastante, embora não seja específico ao meu problema.

 

 

Mas Vlw mesmo !

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Entre para seguir isso  
Seguidores 0

  • Próximos Eventos