Programar em C/Operadores: diferenças entre revisões

[revisão pendente][revisão pendente]
Conteúdo apagado Conteúdo adicionado
traduzido partes que estavam em ingles
Linha 189:
== Operadores Lógicos Bit a Bit ==
{| border="1" cellpadding="5" cellspacing="0"
| Operador || AcçãoAção lógica
|-
| & || AND ( E )
|-
| ¦ || OR (OU)
|-
| ^ || XOR (OR exclusivo/OU exlusivo)
|-
| ~ || NOT
Linha 215:
 
{|border="1" cellpadding="5" cellspacing="0"
| LevelNivel || OperatorOperador || DescriptionDescriçao || GroupingAgrupamento
|-
| 1 || :: || scopeescope || Left-to-rightEsquerda para direita
|-
| 2 || () [] . -> ++ -- || dynamic_cast static_cast reinterpret_cast const_cast typeid postfix || Left-to-rightEsquerda para direita
|-
| 3 || ++ -- ~ ! || sizeof new delete unary (prefix)|| Right-to-leftDireita para esquerda
|-
| || * & || indirection and referencereferencia (pointersponteiros)|| Right-to-leftDireita para esquerda
|-
| || + - || unary sign operator || Right-to-leftDireita para esquerda
|-
| 4 || (type)|| type casting || Right-to-leftDireita para esquerda
|-
| 5 || .* ->* || pointer-to-member || Left-to-rightEsquerda para direita
|-
| 6 || * / % || multiplicative|| Left-to-rightEsquerda para direita
|-
| 7 || + - || additiveadiçao (+) e subtraçao (-) || Left-to-rightEsquerda para direita
|-
| 8 || << >> || shifttrocar || Left-to-rightEsquerda para direita
|-
| 9 || < > <= >= || relationalrelacional || Left-to-rightEsquerda para direita
|-
| 10 || == != || equalitycomparativos || Left-to-rightEsquerda para direita
|-
| 11 || & || bitwise "AND"/E || Left-to-rightEsquerda para direita
|-
| 12 || ^ || bitwise "XOR" || Left-to-rightEsquerda para direita
|-
| 13 || <nowiki>|</nowiki> || bitwise "OR"/"OU" || Left-to-rightEsquerda para direita
|-
| 14 || && || logical "AND"/ "E" lógico || Left-to-rightEsquerda para direita
|-
| 15 || <nowiki>||</nowiki> || logical "OR"/ "OU" lógico || Left-to-rightEsquerda para direita
|-
| 16 || ?: || DescriptionDescrição || Right-to-leftDireita para esquerda
|-
| 17 || = *= /= %= += -= >>= <<= &= ^= != || assignmentAtribuição || Right-to-leftDireita para esquerda
|-
| 18 || , || commasubparágrafo/inciso || Left-to-rightEsquerda para direita
|}
 
== Exercícios ==
 
* (7 == 5) // evaluatesAvalia tocomo falsefalso.
* (5 > 4) //Avalia evaluatescomo to true.verdadeiro
* (3 != 2) //Avalia evaluatescomo to true.verdadeiro
* (6 >= 6) //Avalia evaluatescomo to true.verdadeiro
* (5 < 5) // evaluatesAvalia tocomo falsefalso
 
* (a == 5) // evaluatesAvalia tocomo falsefalso since, porque a isnão noté equaligual toà 5.
* (a2*b3 >= c6) // evaluatesAvalia tocomo trueverdadeiro sinceporque (2*3 >= 6) isé trueverdadeiro.
* (b3+4 > a2*c6) // evaluatesAvalia tocomo falsefalso sinceporque (3+4 > 2*6) isé falsefalso.
* ((b=2) == a) // evaluates to true.
 
* !(5 == 5) // evaluatesAvalia tocomo falsefalso,porque becausea theexpressão expressiona at its rightdireita (5 == 5) isé trueverdadeira.
* !(6true <= 4) // evaluates to true because (6 <= 4) would// beAvalia false.como falso
* !true false //Avalia evaluatescomo to falseverdadeiro
* !false // evaluates to true.
 
* ( (5 == 5) && (3 > 6) ) // evaluatesAvalia tocomo falsefalso ( true && false ).
* ( (5 == 5) || (3 > 6) ) // evaluatesAvalia tocomo trueverdadeiro ( true || false ).