Linguagem C | Aula 50 - Função: struct como parâmetro

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ม.ค. 2025

ความคิดเห็น • 44

  • @icaroantunes7642
    @icaroantunes7642 3 ปีที่แล้ว +1

    obrigado!

  • @myrlla_
    @myrlla_ ปีที่แล้ว

    ajudou mt

  • @Joao-pz4cz
    @Joao-pz4cz ปีที่แล้ว

    gênio

  • @jailsonathayde74
    @jailsonathayde74 3 ปีที่แล้ว

    Mais uma aula incrível, como de costume.

  • @felipe271
    @felipe271 6 ปีที่แล้ว +1

    1:31 no printf dentro da função vc indicou a referência ao n "printf("Valor = %d
    ",*n)"
    e não o valor de n em si, por estar nesse formato quando for compilar, o resultado que sera mostrado é 11 e 21, e não o endereço de memória como da a entender que vai ser o resultando pelas chamadas de funções (utilização do &).

    • @CiroboyBR
      @CiroboyBR 5 ปีที่แล้ว

      o * tira a referencia de um ponteiro, se você tem uma variável X e aplica nela a referencia &X, você tem um endereço que pode ser atribuído a um ponteiro.
      Se você pega um ponteiro P e tira a referencia dele com um asterisco, *X, isso trará o conteúdo da variável que está sendo apontada pelo ponteiro.

  • @heloisasouza5979
    @heloisasouza5979 2 ปีที่แล้ว

    muitoooo obrigada por esses videos, ta ficando BEM mais claro pra mim

  • @jailsonathayde74
    @jailsonathayde74 3 ปีที่แล้ว +2

    Pra quem vai estudar Estrutura de Dados em C, vai usar este atalho da seta a exaustão(imagina usar com o * rapidinho você cometeria erros). Precisa entender muito bem o funcionamento de struct porque o BIXO é BRABO se loko.

  • @luizalves2308
    @luizalves2308 4 ปีที่แล้ว

    Se p1 fosse um vetor de estrutura, passaria sem o "&"?

    • @progdescomplicada
      @progdescomplicada  4 ปีที่แล้ว

      Sim, vc passaria ele inteiro por referência

  • @PaulinhoHenrique07
    @PaulinhoHenrique07 9 ปีที่แล้ว +3

    e como eu faço no caso de ter que preencher um vetor de struct em uma função?

    • @eljohn9804
      @eljohn9804 6 ปีที่แล้ว +2

      tambem queria saber

  • @andressa1163
    @andressa1163 5 ปีที่แล้ว +6

    Eu não sei nem explicar o alívio que senti no meu coração quando compilei sem erros dps de muito tempo tentando fazer isso rodar :~
    Finalmente consegui entender uma estrutura passada como referência. Muito obrigada mesmo.

  • @Caio-zt5if
    @Caio-zt5if 7 ปีที่แล้ว

    Caralho mano... Vc é foda... Parabens msm... Tem tem três dias que tento aprender struct... E aprendi cntg em apenas 8 minutos... Parabens msm...

  • @rokerumaluku
    @rokerumaluku 4 ปีที่แล้ว +3

    Suas aulas são excelentes, parabéns.
    Estou assistindo e voltando nos seus vídeos a meses, parece que sempre tem um Bizú novo, que não me liguei da outra vez que vim.

  • @lbonfim
    @lbonfim 11 ปีที่แล้ว

    Caro André, muito boa a explicação. Não estava conseguindo entender como passar struct para a função. Após tua vídeo aula, passei a entender.

  • @allanhp4419
    @allanhp4419 7 ปีที่แล้ว

    caraaaaa... tu é um genio... ja estava a mais de 2 horas tentando fazer um programa com structs em c
    vaklleeeeu

  • @gcareis
    @gcareis 11 ปีที่แล้ว +4

    Muito bom. Uma dúvida, como seria para passar uma matriz de structs?

    • @5caioc
      @5caioc 7 ปีที่แล้ว

      Tenho a mesma dúvida =/

    • @jailsonathayde74
      @jailsonathayde74 3 ปีที่แล้ว

      Um vetor e struct é uma matriz.

  • @RafaNunes07
    @RafaNunes07 11 ปีที่แล้ว

    Boa noite, poderia explicar se tem jeito de passar um vetor de struct como parâmetro (Por valor ou Por Referência) para uma função, e se tem como fazer? Grato!

    • @ryanfrancys6640
      @ryanfrancys6640 2 ปีที่แล้ว

      Para isso, você declara dentro da função que esta recebendo como parametro a variavel como vetor(basta colocar[] em frente a variavel para que ele entenda ela como um vetor), e apos, ao inves de usar (*nome_struct).var ou nome_struct->var, utilize: nome_struct[n].var
      Assim ele entenderá que é um vetor de struct

  • @satanojbsantos
    @satanojbsantos 11 ปีที่แล้ว

    Boa explicação.

  • @GaelSilveira
    @GaelSilveira 8 ปีที่แล้ว

    a função void soma_imprime_valor(int *n) dá erro no codeblocks

  • @Joaovictor-fr9vj
    @Joaovictor-fr9vj 8 ปีที่แล้ว

    vlw me ajudou muito, era exatamente isso que eu estava procurando

  • @davidsilvamm
    @davidsilvamm 9 ปีที่แล้ว

    Estou tentando passar um array de struct por referêcia e não estou conseguindo. Ex:
    typedef struct estrutura{...código...}estrutura; //suponha que existe dentro da estrutura declarações de variaveis de qualquer tipo.
    funcaoReferencia(estrutura *e,int tam){
    int i;
    for(i = 0; i < tam.i++){
    printf("digite um numero: ")
    e[i]->variavel; // Ele nao aceita isso, por quê?
    }
    }
    main(){
    estrutura e[5];
    funcaoReferencia(&e,5)
    }
    Quando eu passo o array de struct por referencia usando e tento alterar cada indice usando array_estrutura[i]->variavel não funciona. Só posso criar funções que recebem uma estrutura por vez?

    • @progdescomplicada
      @progdescomplicada  9 ปีที่แล้ว

      David Silva Vc deve usar a seguinte sintaxe: e[i].variávelCada posição de "e" gurda um struct. Se guardasse um ponteiro, ai vc usaria "->"

  • @fjdoliveira82
    @fjdoliveira82 4 ปีที่แล้ว

    Muito bom o seu vídeo. Parabéns.
    Gostaria apenas de ver se existe alguma possibilidade de eu passar como parâmetro da função o campo que deverá ser alterado e seu valor, dinamicamente, de forma que eu possa escolher na chamada da função qual campo será alterado. Por exemplo, chamando a função através de "atribui(p.x, 10)" ou "atribui(p.z, 10.98)", eu teria a função:
    void atribui(struct ponto *campo, valor) {
    campo = valor
    }
    Como eu faria para o primeiro parâmetro ser o campo que eu quero alterar, e não a struct completa? Digamos que no struct eu tenha campos do tipo int e do tipo float.
    Se puder me ajudar, eu ficarei grato.

  • @vitoriatrigo7853
    @vitoriatrigo7853 9 ปีที่แล้ว +1

    Porque p1 ali e não p?

    • @progdescomplicada
      @progdescomplicada  9 ปีที่แล้ว

      Vitoria Trigo Onde?

    • @briefsymphonies
      @briefsymphonies 9 ปีที่แล้ว

      +Vitoria Trigo
      p1 seria o nome da struct que ele declarou, por isso fica p1.x e p1.y

  • @vitoriatrigo7853
    @vitoriatrigo7853 9 ปีที่แล้ว +1

    É que você colocou a struct como parâmetro mas dentro da função colocou p e na função main p1!

  • @lucasbrvr
    @lucasbrvr 6 ปีที่แล้ว

    então se eu fizer *(x.p) eu vou estar passando o p como referência?

  • @arcano7257
    @arcano7257 4 ปีที่แล้ว +1

    Os parentese são necessários porque o operador "*" de referência tem precedencia menor que o "."

  • @luisgabrielmxm
    @luisgabrielmxm 7 ปีที่แล้ว

    nao tem como passar a estrutura inteira por valor?

  • @anarubia7586
    @anarubia7586 8 ปีที่แล้ว +3

    Show! Gostei da seta ->

  • @WillSunTzu
    @WillSunTzu 7 ปีที่แล้ว

    Boa noite professor!
    Parabéns pelo seu material, excelente qualidade a nível técnico.
    Gostaria de assistir uma videoaula onde o Sr. mostrasse-nos como ter um struct contendo uma função (OU ponteiro dela) como membro, de forma que fizesse alusão a um Objeto das linguagens que são orientadas com esse paradigma.
    Abraço.

  • @juninhojr8034
    @juninhojr8034 8 ปีที่แล้ว

    Vc teria um e-mail para contato?

  • @BarrosoFilho
    @BarrosoFilho 11 ปีที่แล้ว +6

    Sheldon Cooper!!

    • @ronildoferreira7681
      @ronildoferreira7681 5 ปีที่แล้ว

      kkkkkkkkkkkkkkkkkkk... vai estudar Barroso, bora voltar pra ufpi rsrs

  • @Fernandes20nb
    @Fernandes20nb 11 ปีที่แล้ว

    Ponteiro. ou &.

  • @briefsymphonies
    @briefsymphonies 9 ปีที่แล้ว

    Olá!
    No lugar de struct ponto, poderia ser usado
    typedef struct{
    int x,y;
    }ponto;
    ?
    Ai na hora de declarar a variável não precisaria usar o struct novamente, somente ponto p1 = {10,20}; Estou certo mestre?
    Parabéns pelas vídeo aulas!