Ir ao conteúdo

Posts recomendados

Postado

então to estudando pra uma prova para amanham aqui, e eu com uma duvida na seguinte estrutura de struct

 

Qual a diferença em criar o struct desse modo, já passando o nome ja na criação do mesmo no caso lista

 

struct Lista {
    int tamanho;
    int tamanho2;
    int item  [MAX];
    int item2 [MAX];
    
    int opcLista ;

}lista;

 

e depois nos metodos passando somente assim

 

//CRIAÇÃO DO METODO

void selecionaLista () {
    
    cout << "Informe a lista " << endl ;
    
    for ( int i = 0 ; i < qtdListas; i ++) {
        cout << "("<< i  + 1 <<") Lista " << i + 1 << endl;
    }
    
    cin >> lista.opcLista ;
    
    system ("cls"); 
    
    cout << "Lista selecionada, " << lista.opcLista << endl;
    system ("pause");
    
}

//CHAMADA DO METODO

selecionaLista() ;

 

Mas chegando na pergunta de fato qual a diferença pra esse jeito aqui,(criando uma variavel no main do programa e passando ela com parâmetro sempre que chamo o metodo,)

 

//CRIAÇÃO DO MÉTODO 

bool inverteFila (Fila &fila){
    int cont = MAX - 1;
    
    if (filaVazia(fila)){
        cout << "Fila vazia !"    << endl;
        return false ;
    }
    
    for (int i = 0; i < MAX; i ++){
        fila.item2 = fila.item[cont] ;
        cont -- ;
    }
    
    cout << "Lista invertida !" << endl ;
    cout << endl ;
    
    for (int i = 0; i < MAX; i ++){
        cout << "Pos "<< i << " . " << fila.item2 << endl ;         
    }
}

 

 

//CHAMADA DO METODO
inverteFila(fila) ;

 

 

 

Não sei se ficou compreensível, mas se der pra entender, agradeço pela ajuda.  

Postado

Bom dia, então vamos por partes.

Ao criar uma struct fora/acima de main, sabemos que qualquer função posterior poderá usa-la.Então quando criamos assim:

struct Lista {
    int tamanho;
    int tamanho2;
    int item  [MAX];
    int item2 [MAX];
    
    int opcLista ;
}lista;

int main(){
...
}

A struct 'lista' se torna global e pode ser acessada em qualquer função, tal qual, é declarada após a struct Lista {...} lista;

 

Se você usar um argumento assim:

void blabla(Fila fila)              //Os dados são copiados - chamada: blabla(fila);

void blabla(Fila *fila)            //fila aponta para um endereço criado - chamada: blabla(&fila); ou pode ser blabla(fila) contanto que fila seja ptr

 

void blabla(Fila &fila)           //eu nunca tentei, mas acredito que receba um ponteiro ou endereço de struct

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!