operadores
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
— | operadores [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Operadores ====== | ||
+ | ===== Operadores Aritméticos ===== | ||
+ | |||
+ | |||
+ | ^ Operador ^ Operação ^ | ||
+ | | + | Adição | | ||
+ | | - | Subtração | | ||
+ | | * | Multiplicação | | ||
+ | | / | Divisão | | ||
+ | | % | Módulo (resto da divisão) | | ||
+ | |||
+ | Todas estas operações exigem 2 operandos (números). | ||
+ | |||
+ | ===== Operadores Unários ===== | ||
+ | |||
+ | |||
+ | ^ Operador ^ Operação ^ | ||
+ | | ++ | Incremento | | ||
+ | | -- | Decremento | | ||
+ | |||
+ | A posição relativa destes operadores em relação a variável influencia o seu funcionamento. Se os operadores forem colocados antes da variável em uma expressão, inicialmente será efetuado o incremento e depois será utilizado este novo valor na expressão. | ||
+ | Se os operadores forem colocados após a variável, primeiro será utilizado o valor atual da variável na expressão, e após, será realizado o incremento ou decremento. | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int main (void) | ||
+ | { | ||
+ | int iValor_01 = 10, iValor_02 = 5, iValor_03 = 8; | ||
+ | int iResultado; | ||
+ | |||
+ | | ||
+ | iResultador = 10 + 9 | ||
+ | iValor_01 = iValor_01 + 1 */ | ||
+ | | ||
+ | |||
+ | | ||
+ | iValor_02 fica com o valor 4 | ||
+ | iResultado = 4 + 10 */ | ||
+ | | ||
+ | |||
+ | | ||
+ | Retorna 9 para iValor_03 | ||
+ | iValor_03 = iValor_03 + 1 | ||
+ | Retorna 10 para iValor_03 | ||
+ | iResultado = 9 * 10 */ | ||
+ | | ||
+ | |||
+ | | ||
+ | iValor_01 = iValor_01 + 1 | ||
+ | Retorna 12 para iValor_01 | ||
+ | iResultado = 11 * 12 | ||
+ | iValor_01 = iValor_01 + 1 */ | ||
+ | | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Operadores de Atribuição ===== | ||
+ | |||
+ | |||
+ | ^ Operador ^ Operação ^ | ||
+ | | += | Adição | | ||
+ | | -= | Subtração | | ||
+ | | *= | Multiplicação | | ||
+ | | /= | Divisão | | ||
+ | | %= | Módulo | | ||
+ | |||
+ | Como é comum a atribuição aonde uma variável é somada ou diminuída de um valor e o resultado é atribuído à mesma variável, a Linguagem C disponibiliza uma maneira curta de realizar este tipo de operação. | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | int iValor_01, iValor_02, iValor_03, iValor_04; | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Operadores Relacionais ===== | ||
+ | |||
+ | ^ Operador ^ Operação ^ | ||
+ | | < | Menor que | | ||
+ | | > | Maior que | | ||
+ | | %%< | ||
+ | | >= | Maior ou igual a | | ||
+ | | == | Igual | | ||
+ | | != | Diferente | | ||
+ | |||
+ | Os operadores relacionais servem para realizar a comparação de dois valores distintos. A implementação da Linguagem C retorna como resultado destas operações os seguintes valores: | ||
+ | * 0 - Operação obteve o resultado falso; | ||
+ | * 1 - Operação obteve o resultado verdadeiro. | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Prioridade de Avaliação ===== | ||
+ | |||
+ | ^ Operadores ^ Prioridade ^ | ||
+ | | ++ -- | Prioridade mais alta | | ||
+ | | * / % | Prioridade média | | ||
+ | | + - | Prioridade baixa | | ||
+ | |||
+ | Quando é utilizada uma série de operadores em uma expressão, deve-se sempre ter em mente a prioridade em que o compilador irá realizar estas operações. | ||
+ | |||
+ | Os operadores unários têm a maior prioridade e serão executados por primeiro. Depois serão executadas todas as operações multiplicativas (*, / e %). Por último serão executadas as operações aditivas (+ e -). | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int main(void) | ||
+ | { | ||
+ | int iValor_01 | ||
+ | int iResultado; | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | Realiza a multiplicação (7*9=63) | ||
+ | Subtrai 4 (63-4 = 59) */ | ||
+ | |||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Operadores Lógicos ===== | ||
+ | |||
+ | ^ Operadores ^ Prioridade ^ | ||
+ | | && | ||
+ | | %%||%% | ||
+ | | ! | Operação lógica negação | | ||
+ | |||
+ | Os operadores lógicos consideram dois operandos como valores lógicos (verdadeiro e falso) e realizam a operação binária correspondente. A linguagem C considera como valor verdadeiro qualquer valor diferente de zero. O valor falso será indicado pelo valor zero. | ||
+ | Estas operações quando aplicadas irão retornar 1 ou zero, conforme o resultado seja verdadeiro ou falso. | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int main(void) | ||
+ | { | ||
+ | int iValor_01 | ||
+ | int iResultado; | ||
+ | |||
+ | /* iValor_01 > 8 retorna verdadeiro ou seja 1 | ||
+ | iValor_01 != 6 retorna verdadeiro ou seja 1 */ | ||
+ | | ||
+ | e diferente de zero (1, | ||
+ | |||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Assinalamento de Variáveis ===== | ||
+ | |||
+ | Para a linguagem C o assinalamento é considerado um operador. Isto significa que podem ser colocados assinalamentos dentro de qualquer comando que exija um valor qualquer. | ||
+ | Sempre que um assinalamento é efetuado, a Linguagem C retorna como resultado do assinalamento o valor que foi colocado em variáveis. Por isso pode-se utilizar este valor retornado pelo operador **'' | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int main(void) | ||
+ | { | ||
+ | | ||
+ | |||
+ | i = j = k = 20; | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Parênteses e Colchetes como Operadores ===== | ||
+ | Em C, parênteses são operadores que aumentam a precedência das operações dentro deles. | ||
+ | Colchetes realizam a indexação de [[vetor_matriz|matrizes]]. Dada uma matriz, a expressão dentro de colchetes provê um índice dentro dessa matriz. | ||
+ | |||
+ | ===== A precedência dos operadores em C ===== | ||
+ | |||
+ | ^ ^ Operador ^ | ||
+ | | Maior | ( ) [ ] %%-> | ||
+ | | | ! ~ ++ -- -(tipo) * & sizeof | ||
+ | | | * / % | | ||
+ | | | + - | | ||
+ | | | %%<< >> | ||
+ | | | %%<<= >> | ||
+ | | | == != | | ||
+ | | | & | | ||
+ | | | %%^%% | | ||
+ | | | %%|%% | | ||
+ | | | && | ||
+ | | | %%||%% | ||
+ | | | ? | | ||
+ | | | = += -= *= /= | | ||
+ | | Menor | , | | ||
+ | |||
+ | |||
+ | <code c> | ||
+ | /* operadores_parenteses.c */ | ||
+ | |||
+ | #include < | ||
+ | int main(void) | ||
+ | { | ||
+ | int iVlr_a, | ||
+ | int iResultado; | ||
+ | |||
+ | /* Atribui 90 a variavel iVlr_a; | ||
+ | Realiza a multiplicacao (9*90=810); | ||
+ | Imprime o resultado (810) */ | ||
+ | | ||
+ | | ||
+ | |||
+ | /* Atribui 50 a variável iVlr_b. | ||
+ | Realiza a multiplicação (20*50=1000). | ||
+ | Atribui 1000 a variável resultado. | ||
+ | Imprime o conteúdo da variável iResultado (1000). */ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | **Observação**: | ||
+ | |||
+ | ===== Operador & e * para Ponteiros ===== | ||
+ | O primeiro operador de [[ponteiros|ponteiro]] é **''&'' | ||
+ | |||
+ | <code c> | ||
+ | m = &count; | ||
+ | </ | ||
+ | |||
+ | põe o endereço na memória da variável '' | ||
+ | |||
+ | O segundo operador é **'' | ||
+ | |||
+ | <code c> | ||
+ | q = *m; | ||
+ | </ | ||
+ | |||
+ | coloca o valor de '' | ||
+ | |||
+ | Observações: | ||
+ | * Cuidado para não confundir '' | ||
+ | * Cuidado para não confundir ''&'' | ||
+ | |||
+ | Veja também [[ponteiros|ponteiros em C]] | ||
+ | |||
+ | --- // |
operadores.txt · Última modificação: 2023/09/12 16:14 por 127.0.0.1