[Powered by Google Translate] Precedência é como responder à pergunta, o que a operação que devemos fazer primeiro?
Se a resolução de equações matemáticas ou linhas de análise de código de computador,
há regras estritas de precedência à qual aderimos
para que todos os computadores e as pessoas podem obter o mesmo resultado.
>> Primeiro, a regra mais importante para recordar, especialmente em testes de erro,
é que sempre trabalhar a partir dos parênteses mais internos para fora.
Usando parênteses extra pode ser uma tática de depuração útil,
mas não é uma boa prática para maca do seu código com parênteses desnecessários.
Aproveite o tempo para aprender as regras básicas de operação de precedência.
>> A segunda regra geral é que quando os operadores têm priorty igual,
você simplesmente resolver da esquerda para a direita.
Ao lidar com a matemática simples, começamos com parênteses,
em seguida, fazer a multiplicação e divisão, e por último fazer adição e subtração.
Multiplicação e divisão têm a mesma prioridade,
porque são essencialmente realizar a mesma operação.
Afinal divisão é simplesmente multiplicando pelo inverso de um valor.
Da mesma forma, a subtração é simplesmente adicionando um valor negativo.
>> Vamos fazer um exemplo.
Seguindo a ordem de precedência, vamos começar com os parênteses. Nove menos 1.
Isso nos dará 8. Então, podemos passar para a divisão e multiplicação.
Vamos resolver da esquerda para a direita. Então, 10 dividido por dois é 5.
Temos 5 vezes 8 aqui, e que nos dará 40.
Em seguida, passamos para a próxima ordem de precedência.
Então, ficamos com 3 e 40 menos 1.
Novamente apenas resolvendo esquerda para a direita,
porque não há igual prioridade entre a adição e subtração.
Podemos dizer 3 e 40 é de 43, menos 1 é 42. Essa é a nossa resposta.
>> Existem dois tipos de operadores de decremento e incremento;
A forma de prefixo, sufixo e a forma.
A forma de sufixo, i + +, é comumente usado em loops,
o que significa que o valor da corrente é usada na expressão, e em seguida, é incrementado.
Assim, o valor só será diferente da próxima vez que a variável é utilizada.
Por outro lado, o incremento ou decremento prefixo significa que o valor actual
é incrementado ou decrementado em primeiro lugar, e, em seguida, ele é usado na expressão.
>> Vamos dar um exemplo com o inteiro x.
Vamos defini-lo igual a 5.
Se usarmos o operador sufixo nele e dizer x + +, x nesta linha ainda é 5.
Se fôssemos para imprimi-lo obteríamos o valor 5.
Mas indo fato de x1 para a frente é igual a 6.
Então, aqui nesta linha x é igual a 6, e se imprimiu obteríamos o valor 6.
Agora, se foi utilizado o operador de prefixo, + + x, x é incrementado em primeiro lugar, e, em seguida, o valor é usado.
Portanto, é igual a 7 nesta linha.
O incremento do curso de 6 a 7, e se nós imprimi-lo teríamos o valor 7.
>> A nuance último precedência que veremos lida com notação de ponteiro.
O operador dereference, estrela, tem prioridade sobre operadores matemáticos básicos,
mas não sobre o incement sufixo e operadores de decremento.
Isso nos leva ao nosso exemplo final.
Vamos dar o inteiro x e defini-lo igual a 7.
Também vamos fazer uma y ponteiro e defini-lo igual ao endereço de x.
Para que, quando y dereference devemos obter o valor 7.
Agora, nesta linha de código, temos uma situação um tanto ambígua.
Estamos dereferencing y primeiro, e depois aumentando o valor 7?
Ou estamos incrementando o ponteiro e depois dereferencing isso?
Na verdade, porque o operador de incremento sufixo tem precedência sobre
o operador dereference, estamos tentando incrementar o ponteiro y,
que mover o ponteiro pelo tamanho de bytes int.
Essencialmente nos dar um endereço em algum momento totalmente diferente na memória,
e depois vamos dereferencing-lo.
Portanto, esta é a linha muito sentido.
Se realmente queria incrementar o valor de 7,
teríamos que colocar o operador dereference com y entre parênteses.
Então poderíamos incrementá-lo.
Assim, enquanto não estaríamos incrementando o valor de x, com o segundo a última linha de código,
na última linha de código que faria y dereference infact
para obter o valor x e incrementar isso.
Nós ficaria com o valor de x é igual a 8.
>> Aqui está uma rápida recapitulação das regras precedência que nós falamos.
Nós vamos começar com os parênteses mais internos e trabalhar fora.
Em seguida, passamos para operadores de sufixo, como i + + ou i -.
Então dereference e endereço de operadores como estrela x ou x comercial,
e os operadores de prefixo como + + i ou - i.
Finalmente, fazer as operações matemáticas simples, como divisão, multiplicação, módulo.
Em seguida, adição, subtração.
Isso é precedência. Sou Jordan Jozwiak, e este é CS50.
Nós vamos dereference e usar o endereço e - como você frase que?
Eu sou feito. Okay.