3
respostas

Usar uma variável que está na função no método main

Boa noite pessoal. Para usar uma variável que está no main em uma função, estou entendendo. Mas do contrário, seria possível? Por exemplo, nessa aula, se por algum motivo qualquer eu quisesse usar essa variável "m" lá no método main, como poderia ser feito?

3 respostas

Olá Paulo! Tudo bem? espero que sim!

É uma dúvida bem interessante!

um código não pode conter duas fuções "main()", e da mesma forma, a função "main()" não pode ser "chamada" por nenhuma outra função, mas e agora? como usar o valor de uma variável de uma função qualquer em nossa função principal?

Você pode usar o "return" para fazer isso!

por exemplo, caso eu queira usar a variável "numero" que está fora da função principal para realizar uma soma na função principal:

#include <stdio.h>

int NumeroEscolhido(){
  int numero;

  printf("escolha um numero fora da funcao principal: ");
  scanf("%d", &numero);
  
  return numero;
}

int main(){

  //vamos usar a variavel "num" para receber o valor de "numero" da outra funcao
  int num = NumeroEscolhido();
  
  printf("\no valor de num + 2 eh  : %d\n", num + 2);

  return 0;
}

Espero ter ajudado!

:)

Valeu, Leonardo! mas no caso, uso de ponteiros daria certo também nesse exemplo que você usou?

Daria sim!

O uso de ponteiros melhora o desempenho do código.

Nesse exemplo, eu poderia colocar a função "NumeroEscolhido" para receber um parâmetro, que seria no caso o endereço de memória de "num".

#include <stdio.h>

void NumeroEscolhido(int * ponteiro){ // a função recebe um endereço de memória 

  printf("escolha o valor a ser colocado no endereço de memória de num : ");
  
  scanf("%d", ponteiro); //por já ser um endereço de memória, não há a necessidade de colocar o "&" 
  
  }

int main(){

  int num; 
  
  NumeroEscolhido(&num); //recebe o endereço de memória de "num" para alterar o valor contido nele
  
  printf("\no valor de num + 2 eh  : %d\n", num + 2);

  return 0;
}

Esse é o mesmo código de antes, mas agora o valor de num é alterado por um ponteiro e da outra maneira ele recebia o retorno de uma função.

O mesmo código pode ser escrito de várias maneiras, isso é oq torna a programação linda!!!

espero ter ajudado :)