Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou como uma dúvida em relação a passagem de parâmetro. Como eu faço para usar o return de uma função como parâmetro de outra função?
Bom dia Arkanck, no main eu coloquei comentários nas funções pra ficar mais claro. Grato desde já!
#include <stdio.h>
#include <stdlib.h>
int apresentar(int *op) {
int opc = *op;
printf("\n\tMatrizez");
printf(ESP);
printf("\tDigite 1 para 2D ou 2 para 3D (0 para finalizar): ");
scanf("%d", &opc);
return opc;
}
int menu() {
printf("\n***\n");
}
int main(int argc, char *argv[]) {
int op;
apresentar(&op);//ESSA FUNÇÃO RETORNA UM VALOR
menu();//QUERO USAR O RETORNO DA FUNÇÃO ANTERIOR AQUI
printf("\n%d\n", op);
return 0;
}
Obs: Quando eu crio uma variavel e indico: variavel = função(); ela chama a função novamente.DawanLago, já tentou isso?
// Adicionei um parâmetro para receber o valor de entrada e alterei o tipo de
// retorno para void, já que nenhum inteiro é retornado.
void menu(int opc) {
printf("\n***\n");
}
Uso no main:
menu(apresentar(&op));
Ou:
int opc = apresentar(&op);
menu(opc);
>
Obs: Quando eu crio uma variavel e indico: variavel = função(); ela chama a função novamente.
Sim. É exatamente no local em que é chamada a função que deve ser armazenado o valor de retorno. Como fiz acima.
Como estava fazendo? Estava chamando a função duas vezes?
Obs.:
Espero ter ajudado!
Olá, DawanLago!
Não entendi muito bem a sua dúvida. Seria isso?
#include <stdio.h>
int sum(int n1, int n2)
{
void show(int result)
{
int main(int argc, char *argv[])
{
// Passagem por parâmetro aqui.
show(sum(1000, 266)); // Saída: "O resultado da soma é 1266."
Caso contrário, seja mais claro, por favor!