[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.