Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Declaração de variável dentro de loop

No código elaborado pelo instrutor, há declaração de variável dentro do loop for. Exemplo:

#include <stdio.h>

#include <string.h>

int main(){

char palavrasecreta[20];
sprintf(palavrasecreta, "ARARAQUARA");

for (int i = 0 ; i < 5; i++) {
    int x = i * 2;
    printf("%d\n", x);
}

}

Dúvida: a linguagem C, ao ver uma variável já declarada ser novamente declarada simplesmente "ignora" essa declaração? Há alguma perda em termos de processamento (mesmo que pequena)? Seria vantajoso declarar a variável fora (e perder na questão do escopo da variável) ou não se perde nada declarando dentro do loop?

3 respostas
solução!

Boa tarde, Rodolfo!

Nesse caso, a variável x está sendo deletada no final do for e declarada no início do mesmo. Então, não haverá variável duplicada.

Em relação as perdas, acredito que devem ser mínimas (se houver).

Eu gosto de declarar o x com o i, ou seja,

    for (int i = 0, x; i < 5; i++)
    {
        x = i * 2;
        printf("%d\n", x);
    }

Muito obrigado, Rosicley. Gostei bastante da sua solução para declarar a variável X dentro da inicialização do loop FOR. Vou copiar essa abordagem.

Por nada, Rodolfo!

Quanto ao processamento você pode estar testando a biblioteca time.h para verificar o tempo de processamento.