Este artigo fornece um tutorial abrangente para ajudá -lo a aprender sobre associatividade e precedência do operador em c.
Precedência do operador em c
Operador precedente descreve a sequência em que vários operadores são avaliados ao avaliar expressões. Por exemplo, se uma expressão tiver operadores de adição e multiplicação, que deve ser avaliada primeiro? A resposta é simples, C segue certas regras para resolver essa ambiguidade, comumente conhecida como operador precedente. Em c, operador precedente é classificado em 17 níveis, variando de operadores unários ao operador condicional ternário. A maioria dos operadores usados, como operadores aritméticos, operadores relacionais, operadores lógicos e operadores bit -newwood, seguem o padrão C operador precedente protocolo.
Precedência As regras determinam quais operadores têm prioridade mais alta do que outros ao avaliar expressões. Vários tipos de operadores na linguagem de programação C têm graus variados de precedência. Por exemplo, operadores unários têm uma prioridade maior do que os operadores binários. A seguir, é apresentada uma lista de operadores classificados em ordem crescente de precedência:
Operador | Significado do operador | Associatividade |
() [] -> . | Chamada funcional Referência do elemento da matriz Seleção de membros indiretos Seleção direta de membros | Da esquerda para direita |
! ~ + - ++ - & * tamanho de (tipo) | Negação lógica Complemento bit -newo (1's) UNARY Plus Unário menos Incremento Decremento Dereferência (endereço) Referência do ponteiro Retorna o tamanho de um objeto TypeCast (conversão) | Direita para esquerda |
* / % | Multiplicar Dividir Restante | Da esquerda para direita |
+ - | Binário Plus (adição) Binário menos (subtração) | Da esquerda para direita |
<< >> | Desvio à esquerda Deslocamento para a direita | Da esquerda para direita |
< <= > > = | Menor que Menor ou igual Maior que Maior ou igual | Da esquerda para direita |
== != | Igual a Não igual a | Da esquerda para direita |
& | Bit nejudado e | Da esquerda para direita |
^ | Bitwise exclusivo ou | Da esquerda para direita |
| | Bit nejudado ou | Da esquerda para direita |
&& | Lógico e | Da esquerda para direita |
|| | Lógico ou | Da esquerda para direita |
?: | Operador condicional | Direita para esquerda |
= *= /= %= += -= & = ^= | = <<= >> = | Atribuição simples Atribuir produto Atribuir quociente Atribuir restante Atribuir soma Atribuir diferença Atribua bit e Atribua XOR Bitwise Atribua bitwise ou Atribua turno esquerdo Atribua turno direito | Direita para esquerda |
, | Separador de expressões | Da esquerda para direita |
Essas regras orientam o compilador sobre como avaliar expressões com vários operadores na mesma expressão. O operador de multiplicação, por exemplo, tem maior precedência do que o operador de adição na equação A + B * C, de acordo com o precedência regras. Portanto, o compilador avaliará primeiro a expressão B * C antes de adicionar um ao resultado.
Vejamos um exemplo de operador precedente através do código.
#incluirAs quatro variáveis A, B, C e D, são declaradas no código acima, e seus valores iniciais são 43, 11, 16 e 31 de acordo. Em seguida, aplica uma variedade de operadores aritméticos e de atribuição a essas variáveis em uma expressão. A expressão aumenta o valor de A usando o operador de pré-incremento ++ A, multiplica o resultado pelo operador pós-depressão B- e depois adiciona o resultado ao Civisando C pelo valor pré-declarado de D D D. (Usando o operador de pré -decisão -d). O resultado variável é então usado para manter o resultado total dessa expressão.
Saída
Associatividade em c
Associatividade refere -se à ordem em que os operadores são avaliados durante uma expressão com a mesma precedência. Da esquerda para a direita e direita para a esquerda Associatividade são as duas formas de associatividade em c. Se dois operadores tiverem o mesmo precedência, Eles são avaliados da esquerda para a direita de acordo com o conceito de esquerda para a direita Associatividade. No entanto, se a mesma precedência for observada, os operadores serão avaliados da direita para a esquerda de acordo com a direita para a esquerda Associatividade.
Por exemplo, o operador de incremento ++ tem o direito para a esquerda Associatividade, o que significa o incremento operador é avaliado após a variável. Considerando que o lógico e operador tem um da esquerda para a direita Associatividade, o que significa que o operador é avaliado da esquerda para a direita.
#incluirAs três variáveis A, B e C são declaradas neste código e são inicializadas para 6, 3 e 2, respectivamente. Em seguida, aplica operações de multiplicação e divisão a essas variáveis em uma expressão. Multiplicação e divisão são classificadas da esquerda para a direita em C com base em seus Associatividade como eles têm o mesmo nível de precedência. Isso indica que a operação da divisão vem primeiro, seguida pela operação de multiplicação ao avaliar a expressão, a * b / c.
Saída
Conclusão
Operador precedente e Associatividade são conceitos cruciais na programação C que ajudam a determinar a ordem de execução de expressões. Operadores com o mais alto precedência o nível é avaliado primeiro e Associatividade As regras ajudam a determinar a ordem quando vários operadores com a mesma precedência são usados. Entendimento operador precedente e Associatividade é essencial ao projetar programas complexos e ajuda a produzir código mais limpo e eficiente com menos erros.