Jump to content
Fórum Script Brasil
  • 0

Podem me responder urgente?


Thiago lablonsk

Question

Já programo em C a um tempo. Bom eu sempre usei o return como metodo para retornar valores da função porem ele só me retorna 1 valor. Gostaria de saber outro metodo e podem me dar exemplos?

Tipo

void exemplo(int x)

{

}

Eu não entendi muito bem me parece que o & me envia este valor de volta

void exemplo(int &x)

{

}

e se for um ponteiro? uma struct? E o que acontece na função e como fica no main?

Rs sei que são muitas perguntas e que eu programo diferente e meu professor utiliza isso e quase me reprovou por não fazer igual ele na aula teoria ¬¬'.

Obrigado

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

testa esse exemplo ai e ver o resutado;

#include <stdio.h>

#include <stdlib.h>

int exemplo(int &valor1){

int valor2;

valor1 = 10;

valor2 = 20;

return valor2;

}

int main( ) {

int retorno1, retorno2;

retorno2 = exemplo( retorno1 );

printf ("retorno1: %d retorno2: %d", retorno1, retorno2);

system("pause");

return 0;

}

o operador ( &) que dizer que voce esta acessando diretanente o endereco da variavel. ou seja você não cria uma copia da variavel mas usa ela diretamente.. isso tanbem vale para qualquer tipo de dado...

espero que tenha ficado claro..

qualquer duvida e so perguntar

Edited by henrique.araujo
Link to comment
Share on other sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

testa esse exemplo ai e ver o resutado;

#include <stdio.h>
#include <stdlib.h>

int exemplo(int &valor1){
int valor2;
valor1 = 10;
valor2 = 20;
return valor2;
}

int main( ) {
int retorno1, retorno2;
retorno2 = exemplo( retorno1 );
printf ("retorno1: %d retorno2: %d", retorno1, retorno2);

system("pause");
return 0;
}


o operador ( &) que dizer que voce esta acessando diretanente o endereco da variavel. ou seja você não cria uma copia da variavel mas usa ela diretamente.. isso tanbem vale para qualquer tipo de dado...
espero que tenha ficado claro..
qualquer duvida e so perguntar

Obrigado me ajudou, porem em meu codblocks ele não roda em C somente em C++ tudo por causa do & ele não aceita e da um aviso sobre pontos ou ponto e virgula já no C++ funciona tranquilamente.

Link to comment
Share on other sites

  • 0

Se você está começando a programar e faz de maneira diferente a do professor, então aconselho a prestar mais atenção nas aulas.

O operador '&' (e ponteiro, em geral) é imprescindível nessa linguagem, caso deseje um código limpo, dinâmico e eficiente.

A utilização desse operador, serve para retornar o ponteiro para a variável contida após ele.

Geralmente utilizado quando uma função precisa receber um ponteiro e a variável que precisa ser passada não é.

O código do colega @henrique.araujo está errado, na declaração da função para receber um ponteiro como parâmetro.

Segue corrigido:

#include <stdio.h>
#include <stdlib.h>

int exemplo(int *valor1)
{
    int valor2;

    *valor1 = 10; // O '*' na frente, serve para alcançar o conteúdo referenciado pelo ponteiro.
    valor2 = 20;

    return valor2;
}

int main( )
{
    int retorno1 = 0;
    int retorno2 = 0;

    retorno2 = exemplo( &retorno1 ); // Passa o ponteiro para 'retorno1' como parâmetro

    printf ("retorno1: %d retorno2: %d\n", retorno1, retorno2);

    system("pause");
    return 0;
}
PS: Vale lembrar que é sempre aconselhado iniciar as variáveis com um valor, para evitar que o programa acabe utilizando lixo de memória em seu processamento.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...