Erros, bugs, perguntas - página 2889
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Você tem um número aleatório 0, eu tenho 540016640
mas continuam a ser números aleatórios.
Pensei que a MQ estava zerada.
Pensei que a MQ estava zerada.
As variáveis globais parecem ser inicializadas com zero, mas tenho visto inicializações diferentes no corpo de funções na primeira passagem. Tento sempre inicializar antes de usar. Embora eu concorde, o comportamento deve ser inequívoco.
E outra declaração no corpo do laço, entre parênteses, torna a variável local ao laço. Só não está nos documentos.
Além disso, o compilador não avisa que a variável não é inicializada.
Imprimir(...) não pode avisá-lo como se o parâmetro fosse passado por uma referência não-constante
Se os loops forem os mesmos, então o comportamento do compilador deve ser o mesmo, e é diferente. É aqui que reside o erro. Explicou porque existe um aviso no caso (1), depois explique porque não existe um no caso (2) ? O que mudou em princípio? E então, se uma variável não inicializada é utilizada, porque é que o resultado final é correcto ao executar o código?
Existe uma tal ciência - lógica. Se A e B são os mesmos e A é vermelho, B também deve ser vermelho, não verde
Não estudei programação, só posso especular logicamente, como Vasily Ivanovich e Petka especularam em lógica.
No primeiro caso, toda a cadeia é executada
e aqui a variável j não é inicializada, mas o seu valor é atribuído à variável i
No segundo caso, mesmo que a variável j não seja inicializada, na linha seguinte onde é utilizada, não é atribuído o seu valor, mas sim o seu valor. Por outras palavras, a variável j é inicializada com o valor da variável i
Aqui está também uma variante sem avisos
Não estudei para ser um programador, só posso especular logicamente, como Vasily Ivanovich e Petka especularam sobre a lógica.
No primeiro caso, toda a cadeia é executada
e aqui a variável j não é inicializada, mas o seu valor é atribuído à variável i
E quem o estudou? Penso que a maioria das pessoas aqui (como eu) são autodidactas.
É necessário estudar o para operador de laço para compreender a sequência de operações. Em (1 ), é atribuído à variável j o valor de i+1
j = i+1
antes de aparecer à direita do operador de cessão
As variáveis globais parecem ter sido inicializadas com zero, mas o corpo da função encontrou diferentes inicializações na primeira passagem.
Tento sempre inicializar antes de usar. Embora eu concorde, o comportamento deve ser inequívoco.
E outra declaração no corpo do laço, entre parênteses, torna a variável local ao laço. Os docs simplesmente não o têm.
Sim, eu também inicializo sempre as variáveis, é como duas vezes duas,devo sempre lembrar-me.
Apanhei-o na minha cabeça a partir da língua C )
Portanto, este exemplo de um loop com uma variável não inicializada é uma má prática.
Sim, eu também inicializo sempre variáveis, é como duas vezes duas,tenho de me lembrar sempre.
Apanhei-o na minha cabeça a partir da língua C )
Portanto, este exemplo de um loop com uma variável não inicializada é uma má prática.
É necessário inicializá-lo, mas apenas com um valor significativo. Não existe tal valor no exemplo acima, por isso não é uma má prática e é a única forma possível. Caso contrário, haveria uma dupla inicialização
Inicializar, mas apenas com um valor significativo. Não existe tal valor no exemplo acima, por isso a prática não é má, é a única possível. Caso contrário, haveria uma dupla inicialização
O que mudaria se fosse rubricado
O que mudaria se fosse rubricado com j=333?
E porquê por zero e não por j=333, digamos? Ou seja, é uma inicialização sem sentido que pode esconder um erro difícil de encontrar
Porquê zero e não 333, digamos? Ou seja, é uma inicialização sem sentido que pode esconder um erro difícil de apanhar
Se precisar de apanhar um erro deste valor, bem, inicialize-o com 333 ))
É apenas um valor inicial.