Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Váriavel Global

O professor comenta nessa aula que quando usamos variáveis globais não precisamos de cópias nem referências por ponteiro. Então quando usamos uma variável global em uma função como a variável tentativas na função chuta:

void chuta(){
    char chute;
    printf("Chute uma letra?\n");
    scanf(" %c", &chute);

chutes[tentativas] = chute;//Array que guarda todos os chutes do usuário
(tentativas)++;
}

Os valores que atribuirmos a essa variável nessa função ficarão nela mesmo quando posteriormente utilizarmos ela em uma outra função?

void desenhaforca(){

    printf("Numero de tentativas: %d\n", tentativas);

    for( int i = 0; i < strlen(palavraSecreta); i++){

            if(jachutou(palavraSecreta[i])) {
                printf("%c ", palavraSecreta[i]);
            } else {
                printf("_ ");
            }
    }

    printf("\n");
}
1 resposta
solução!

Olá, se entendi bem sua dúvida, sim. A váriavel global pode ser acessada de qualquer ponto e nesse caso você não tem que passar ela como argumento. Você explicitamente altera ela de dentro da função.

Para entender melhor, recomendo esse código:

#include <stdio.h>

int var_global = 5;

void f1(void)
{
    var_global -= 5;
}

void f2(int argumento)
{
    argumento -= 5;
}

int main(int argc, char *argv[])
{
    printf("variavel antes da chamada das funcoes: %d\n", var_global);

    f1();

    printf("apos a chamada de f1: %d\n", var_global);

    f2(var_global);

    printf("apos a chamada de f2: %d\n", var_global);

    printf("f2 nao subtraiu a var_global... o que aconteceu?\n");

    return(0);
}

saída:

variavel antes da chamada das funcoes: 5
apos a chamada de f1: 0
apos a chamada de f2: 0
f2 nao subtraiu a var_global... o que aconteceu?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software