SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Introdução à Programação em
Linguagem C
Rodolfo Riyoei Goya
http://rgoya.sites.uol.com.br
rgoya@uol.com.br
Modelo Abstrato de Programação
Elementos Estruturais
Dados de Tipo Simples
Dados em Estruturas Homogêneas
Dados em Estruturas Heterogêneas
Elementos Algorítmicos
Declaração
Comandos de Entrada/Saída
Comandos de Expressão
Comandos de Decisão
Comandos de Iteração
16.02.14
Linguagem C
Rodolfo Goya 2
Comandos de Expressões
Permitem manipular e alterar valor de variáveis.
Operadores:
Aritméticos
Incremento e Decremento
Relacionais
Booleanos
Bit a bit
Atribuição
16.02.14
Linguagem C
Rodolfo Goya 3
Comandos de Expressões
Aritméticos
+ Adição
- Subtração
* Multiplicação
% Resto de Divisão Entre Inteiros
/ Divisão (com truncamento se entre inteiros)
16.02.14
Linguagem C
Rodolfo Goya 4
Comandos de Expressões –
Aritméticos
A aritmética em ponto flutuante procede de modo
convencional
A aritmética inteira apresenta algumas diferenças:
O resto da divisão tem o mesmo sinal que o primeiro operando:
9 % 5 resulta em 4
-9 % 5 resulta em -4
A divisão de inteiros é com truncamento:
39 / 10 resulta em 3
A divisão de inteiros negativo é consistente com o resto:
9 / 5 resulta em 1
-9 / 5 resulta em -1
16.02.14
Linguagem C
Rodolfo Goya 5
Comandos de Expressões –
Precedência em Aritmética
Multiplicações, divisões e resto têm precedência (são
executadas primeiro) sobre adição e subtração.
9 - 3 * 2 resulta em 3
9 - 3 / 3 resulta em 8
Multiplicações, divisões e resto têm mesma precedência
e são executadas da esquerda para a direita.
9 / 3 / 3 resulta em 1
Adições e subtrações têm mesma precedência e são
executadas da esquerda para a direita.
9 - 3 - 3 resulta em 3
16.02.14
Linguagem C
Rodolfo Goya 6
Comandos de Expressões –
Aritméticos
A ordem de cálculo das expressões pode ser alterada
com o uso de parênteses
Expressões internas a parênteses são executadas antes da
externas.
( 9 - 3 ) * 2 resulta em 12
( 9 - 3 ) / 3 resulta em 2
Parênteses podem ser aninhados.
( 3 - ( 2 + 5 ) / 7 ) * 4 resulta em 8
Parênteses podem ser usados para maior clareza (sem prejuízo
em termos de tamanho de código e desempenho).
( 9 / 3 ) / 3 resulta em 1
16.02.14
Linguagem C
Rodolfo Goya 7
Comandos de Expressões –
Incremento e Decremento
Incremento e Decremento
++ Incremento
-- Decremento
++i Pré-incremento
--i Pré-decremento
i++ Pós-incremento
i-- Pós-decremento
16.02.14
Linguagem C
Rodolfo Goya 8
Comandos de Expressões –
Incremento e Decremento
Somente sobre variáveis.
1++ e ( a + b )++ são usos inválidos para este comando.
Pré-incremento: Incrementa a variável antes de dar
qualquer outro uso para ela na expressão.
a = 2;
b = ++a; resulta em a = 3 e b = 3
Pós-incremento: Incrementa a variável após qualquer
outro uso para ela na expressão.
a = 2;
b = a++; resulta em a = 3 e b = 2
16.02.14
Linguagem C
Rodolfo Goya 9
Comandos de Expressões –
Incremento e Decremento
Cuidados: i + 1 é diferente de i++
j = i + 1 não altera o valor de i.
j = i++ altera o valor de i.
Comandos de Expressões –
Operadores Relacionais
Relacionais
Resultam em 0 se falso.
Resultam em 1 se verdadeiro.
= = Igualdade
!= Desigualdade
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
16.02.14
Linguagem C
Rodolfo Goya 11
Comandos de Expressões –
Operadores Relacionais
A B A == B A != B A > B
5 10 Falso Verdadeiro Falso
10 10 Verdadeiro Falso Falso
15 5 Falso Verdadeiro Verdadeiro
16.02.14
Linguagem C
Rodolfo Goya 12
A B A >= B A <= B A < B
5 10 Falso Verdadeiro Verdadeiro
10 10 Verdadeiro Verdadeiro Falso
15 5 Verdadeiro Falso Falso
Comandos de Expressões –
Operadores Relacionais
A B A == B A != B A > B
5 10 0 1 0
10 10 1 0 0
15 5 0 1 1
16.02.14
Linguagem C
Rodolfo Goya 13
A B A >= B A <= B A < B
5 10 0 1 1
10 10 1 1 0
15 5 1 0 0
Comandos de Expressões –
Operações Booleanos
Booleanos
Resultam em 0 se falso.
Resultam em 1 se verdadeiro.
&& AND
|| OR
! NOT
16.02.14
Linguagem C
Rodolfo Goya 14
Comandos de Expressões –
Operadores Booleanos
A B A && B A || B
Falso Falso Falso Falso
Falso Verdadeiro Falso Verdadeiro
Verdadeiro Falso Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro Verdadeiro
16.02.14
Linguagem C
Rodolfo Goya 15
A !A
Falso Verdadeiro
Verdadeiro Falso
Comandos de Expressões
Bit a bit
Operam sobre a representação binário do número.
& AND
| OR
~ NOT
^ EXCLUSIVE-OR
>> SHIFT-RIGHT
<< SHIFT-LEFT
16.02.14
Linguagem C
Rodolfo Goya 16
Comandos de Expressões –
Operadores bit a bit
unsigned char x = 60 em binário: 00111100
unsigned char y = 85 em binário: 01010101
x & y x | y
00111100 00111100
01010101 & 01010101 |
00010100 (20) 01111101 (125)
x ^ y ~x
00111100 00111100
01010101 ^ 00111100 ~
01101001 (105) 11000011 (195)
16.02.14
Linguagem C
Rodolfo Goya 17
Comandos de Expressões –
Operadores bit a bit
unsigned char x = 60 em binário: 00111100
unsigned char y = 85 em binário: 01010101
x >> 2 x << 2
00111100 >> 2 00111100 << 2
00001111 (15) 11110000 (240)
16.02.14
Linguagem C
Rodolfo Goya 18
Comandos de Atribuição
= Atribuição
+= Soma e Atribuição
-= Subtração e Atribuição
*= Multiplicação e Atribuição
%= Resto de Divisão e Atribuição
/= Divisão e Atribuição
&= Operação AND e Atribuição
|= Operação OR e Atribuição
^= EXCLUSIVE-OR e Atribuição
<<= Deslocamento para Esquerda e Atribuição
>>= Deslocamento para Direita e Atribuição
16.02.14
Linguagem C
Rodolfo Goya 19
Comandos de Atribuição
O lado esquerdo da atribuição é sempre uma variável:
Variável = Constante
i = 10;
Variável = Variável
x = y;
Variável = Expressão
z = x + y – 1;
i = i + 1;
Uma atribuição é também uma operação com resultado:
a = i = j + 1;
b = x + ( y = c + d );
16.02.14
Linguagem C
Rodolfo Goya 20
Comandos de Atribuição –
Cuidados
Atribuição é um comando e não tem relação com o uso
do símbolo “=” em equações matemáticas:
a = a + 1; (isso não faria sentido em uma equação)
Ordem de avaliação: da direita para a esquerda:
a = b = c = d = 1;
Atribuição e comparação:
a = 20 é diferente de a == 20
No primeiro caso faz com que a passe a valer 20.
No segundo caso, o valor de a não é alterado. A expressão
resulta em 0 se a for diferente de 20 e resulta em 1 se a for 20.
16.02.14
Linguagem C
Rodolfo Goya 21
Comandos de Atribuição
Aritmética
Formas compactas de produzir expressões:
+= -=
i += 10; equivale a: i = i + 10;
i -= 10; equivale a: i = i - 10;
*= %= /=
i *= 10; equivale a: i = i * 10;
i %= 10; equivale a: i = i % 10;
i /= 10; equivale a: i = i / 10;
Uma atribuição é também uma operação com resultado:
a = i += j + 1;
b = x + ( y *= c + d );
16.02.14
Linguagem C
Rodolfo Goya 22
Precedência de operadores
Operador Associatividade
( ) Esquerda para Direita
++ -- Direita para Esquerda
+(sinal) Direita para Esquerda
-(sinal) Direita para Esquerda
! ~ Direita para Esquerda
* / % Esquerda para Direita
+ - Esquerda para Direita
>> << Esquerda para Direita
= = != Esquerda para Direita
& Esquerda para Direita
^ Esquerda para Direita
| Esquerda para Direita
&& Esquerda para Direita
|| Esquerda para Direita
= += -= *= %= /=&= |= <<= >>= Direita para Esquerda
, (vírgula) Esquerda para Direita
16.02.14
Linguagem C
Rodolfo Goya 23

Mais conteúdo relacionado

Semelhante a Introdução à Programação em Linguagem C

Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.merciaregina6
 
Linguagem C/C++: Condições ou expressões lógicas
Linguagem C/C++:  Condições ou expressões lógicasLinguagem C/C++:  Condições ou expressões lógicas
Linguagem C/C++: Condições ou expressões lógicasnataferraz
 
Aula 3 - Erros.ppt
Aula 3 - Erros.pptAula 3 - Erros.ppt
Aula 3 - Erros.pptJoely14
 
Lógica de Programação - Unimep/Pronatec - Aula 07
Lógica de Programação - Unimep/Pronatec - Aula 07Lógica de Programação - Unimep/Pronatec - Aula 07
Lógica de Programação - Unimep/Pronatec - Aula 07André Phillip Bertoletti
 
Aula01
Aula01Aula01
Aula01vdlos
 
Formulas excel
Formulas excelFormulas excel
Formulas excelfaby672
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bitsRicardo Bolanho
 
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfAlgoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfEnio Filho
 
Formulas excel
Formulas excelFormulas excel
Formulas exceldedpadilha
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxMarceloRosenbrock1
 
04 - Operadores lógicos e expressões lógicas - v1.2
04 - Operadores lógicos e expressões lógicas - v1.204 - Operadores lógicos e expressões lógicas - v1.2
04 - Operadores lógicos e expressões lógicas - v1.2César Augusto Pessôa
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Fabio Souza
 

Semelhante a Introdução à Programação em Linguagem C (18)

Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.
 
Linguagem C/C++: Condições ou expressões lógicas
Linguagem C/C++:  Condições ou expressões lógicasLinguagem C/C++:  Condições ou expressões lógicas
Linguagem C/C++: Condições ou expressões lógicas
 
Aula 3 - Erros.ppt
Aula 3 - Erros.pptAula 3 - Erros.ppt
Aula 3 - Erros.ppt
 
Lógica de Programação - Unimep/Pronatec - Aula 07
Lógica de Programação - Unimep/Pronatec - Aula 07Lógica de Programação - Unimep/Pronatec - Aula 07
Lógica de Programação - Unimep/Pronatec - Aula 07
 
Aula01
Aula01Aula01
Aula01
 
aula_03.pdf
aula_03.pdfaula_03.pdf
aula_03.pdf
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bits
 
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfAlgoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptx
 
Operadores Java
Operadores JavaOperadores Java
Operadores Java
 
Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)
 
04 - Operadores lógicos e expressões lógicas - v1.2
04 - Operadores lógicos e expressões lógicas - v1.204 - Operadores lógicos e expressões lógicas - v1.2
04 - Operadores lógicos e expressões lógicas - v1.2
 
Ruby learning
Ruby learningRuby learning
Ruby learning
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
 

Mais de Daniel Barão

Conhecimentos de Informática.pdf
Conhecimentos de Informática.pdfConhecimentos de Informática.pdf
Conhecimentos de Informática.pdfDaniel Barão
 
Linguagem C (Parte 6)
Linguagem C (Parte 6)Linguagem C (Parte 6)
Linguagem C (Parte 6)Daniel Barão
 
Linguagem C (Parte 5)
Linguagem C (Parte 5)Linguagem C (Parte 5)
Linguagem C (Parte 5)Daniel Barão
 
Linguagem C (Parte 4)
Linguagem C (Parte 4)Linguagem C (Parte 4)
Linguagem C (Parte 4)Daniel Barão
 
Linguagem C (Parte 2)
Linguagem C (Parte 2)Linguagem C (Parte 2)
Linguagem C (Parte 2)Daniel Barão
 
Linguagem C (Parte 1)
Linguagem C (Parte 1)Linguagem C (Parte 1)
Linguagem C (Parte 1)Daniel Barão
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem CDaniel Barão
 
Tempo de vida das variaveis
Tempo de vida das variaveisTempo de vida das variaveis
Tempo de vida das variaveisDaniel Barão
 

Mais de Daniel Barão (9)

Conhecimentos de Informática.pdf
Conhecimentos de Informática.pdfConhecimentos de Informática.pdf
Conhecimentos de Informática.pdf
 
Linguagem C (Parte 6)
Linguagem C (Parte 6)Linguagem C (Parte 6)
Linguagem C (Parte 6)
 
Linguagem C (Parte 5)
Linguagem C (Parte 5)Linguagem C (Parte 5)
Linguagem C (Parte 5)
 
Linguagem C (Parte 4)
Linguagem C (Parte 4)Linguagem C (Parte 4)
Linguagem C (Parte 4)
 
Linguagem C (Parte 2)
Linguagem C (Parte 2)Linguagem C (Parte 2)
Linguagem C (Parte 2)
 
Linguagem C (Parte 1)
Linguagem C (Parte 1)Linguagem C (Parte 1)
Linguagem C (Parte 1)
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
 
Tabela de Integrais
Tabela de  IntegraisTabela de  Integrais
Tabela de Integrais
 
Tempo de vida das variaveis
Tempo de vida das variaveisTempo de vida das variaveis
Tempo de vida das variaveis
 

Introdução à Programação em Linguagem C

  • 1. Introdução à Programação em Linguagem C Rodolfo Riyoei Goya http://rgoya.sites.uol.com.br rgoya@uol.com.br
  • 2. Modelo Abstrato de Programação Elementos Estruturais Dados de Tipo Simples Dados em Estruturas Homogêneas Dados em Estruturas Heterogêneas Elementos Algorítmicos Declaração Comandos de Entrada/Saída Comandos de Expressão Comandos de Decisão Comandos de Iteração 16.02.14 Linguagem C Rodolfo Goya 2
  • 3. Comandos de Expressões Permitem manipular e alterar valor de variáveis. Operadores: Aritméticos Incremento e Decremento Relacionais Booleanos Bit a bit Atribuição 16.02.14 Linguagem C Rodolfo Goya 3
  • 4. Comandos de Expressões Aritméticos + Adição - Subtração * Multiplicação % Resto de Divisão Entre Inteiros / Divisão (com truncamento se entre inteiros) 16.02.14 Linguagem C Rodolfo Goya 4
  • 5. Comandos de Expressões – Aritméticos A aritmética em ponto flutuante procede de modo convencional A aritmética inteira apresenta algumas diferenças: O resto da divisão tem o mesmo sinal que o primeiro operando: 9 % 5 resulta em 4 -9 % 5 resulta em -4 A divisão de inteiros é com truncamento: 39 / 10 resulta em 3 A divisão de inteiros negativo é consistente com o resto: 9 / 5 resulta em 1 -9 / 5 resulta em -1 16.02.14 Linguagem C Rodolfo Goya 5
  • 6. Comandos de Expressões – Precedência em Aritmética Multiplicações, divisões e resto têm precedência (são executadas primeiro) sobre adição e subtração. 9 - 3 * 2 resulta em 3 9 - 3 / 3 resulta em 8 Multiplicações, divisões e resto têm mesma precedência e são executadas da esquerda para a direita. 9 / 3 / 3 resulta em 1 Adições e subtrações têm mesma precedência e são executadas da esquerda para a direita. 9 - 3 - 3 resulta em 3 16.02.14 Linguagem C Rodolfo Goya 6
  • 7. Comandos de Expressões – Aritméticos A ordem de cálculo das expressões pode ser alterada com o uso de parênteses Expressões internas a parênteses são executadas antes da externas. ( 9 - 3 ) * 2 resulta em 12 ( 9 - 3 ) / 3 resulta em 2 Parênteses podem ser aninhados. ( 3 - ( 2 + 5 ) / 7 ) * 4 resulta em 8 Parênteses podem ser usados para maior clareza (sem prejuízo em termos de tamanho de código e desempenho). ( 9 / 3 ) / 3 resulta em 1 16.02.14 Linguagem C Rodolfo Goya 7
  • 8. Comandos de Expressões – Incremento e Decremento Incremento e Decremento ++ Incremento -- Decremento ++i Pré-incremento --i Pré-decremento i++ Pós-incremento i-- Pós-decremento 16.02.14 Linguagem C Rodolfo Goya 8
  • 9. Comandos de Expressões – Incremento e Decremento Somente sobre variáveis. 1++ e ( a + b )++ são usos inválidos para este comando. Pré-incremento: Incrementa a variável antes de dar qualquer outro uso para ela na expressão. a = 2; b = ++a; resulta em a = 3 e b = 3 Pós-incremento: Incrementa a variável após qualquer outro uso para ela na expressão. a = 2; b = a++; resulta em a = 3 e b = 2 16.02.14 Linguagem C Rodolfo Goya 9
  • 10. Comandos de Expressões – Incremento e Decremento Cuidados: i + 1 é diferente de i++ j = i + 1 não altera o valor de i. j = i++ altera o valor de i.
  • 11. Comandos de Expressões – Operadores Relacionais Relacionais Resultam em 0 se falso. Resultam em 1 se verdadeiro. = = Igualdade != Desigualdade > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a 16.02.14 Linguagem C Rodolfo Goya 11
  • 12. Comandos de Expressões – Operadores Relacionais A B A == B A != B A > B 5 10 Falso Verdadeiro Falso 10 10 Verdadeiro Falso Falso 15 5 Falso Verdadeiro Verdadeiro 16.02.14 Linguagem C Rodolfo Goya 12 A B A >= B A <= B A < B 5 10 Falso Verdadeiro Verdadeiro 10 10 Verdadeiro Verdadeiro Falso 15 5 Verdadeiro Falso Falso
  • 13. Comandos de Expressões – Operadores Relacionais A B A == B A != B A > B 5 10 0 1 0 10 10 1 0 0 15 5 0 1 1 16.02.14 Linguagem C Rodolfo Goya 13 A B A >= B A <= B A < B 5 10 0 1 1 10 10 1 1 0 15 5 1 0 0
  • 14. Comandos de Expressões – Operações Booleanos Booleanos Resultam em 0 se falso. Resultam em 1 se verdadeiro. && AND || OR ! NOT 16.02.14 Linguagem C Rodolfo Goya 14
  • 15. Comandos de Expressões – Operadores Booleanos A B A && B A || B Falso Falso Falso Falso Falso Verdadeiro Falso Verdadeiro Verdadeiro Falso Falso Verdadeiro Verdadeiro Verdadeiro Verdadeiro Verdadeiro 16.02.14 Linguagem C Rodolfo Goya 15 A !A Falso Verdadeiro Verdadeiro Falso
  • 16. Comandos de Expressões Bit a bit Operam sobre a representação binário do número. & AND | OR ~ NOT ^ EXCLUSIVE-OR >> SHIFT-RIGHT << SHIFT-LEFT 16.02.14 Linguagem C Rodolfo Goya 16
  • 17. Comandos de Expressões – Operadores bit a bit unsigned char x = 60 em binário: 00111100 unsigned char y = 85 em binário: 01010101 x & y x | y 00111100 00111100 01010101 & 01010101 | 00010100 (20) 01111101 (125) x ^ y ~x 00111100 00111100 01010101 ^ 00111100 ~ 01101001 (105) 11000011 (195) 16.02.14 Linguagem C Rodolfo Goya 17
  • 18. Comandos de Expressões – Operadores bit a bit unsigned char x = 60 em binário: 00111100 unsigned char y = 85 em binário: 01010101 x >> 2 x << 2 00111100 >> 2 00111100 << 2 00001111 (15) 11110000 (240) 16.02.14 Linguagem C Rodolfo Goya 18
  • 19. Comandos de Atribuição = Atribuição += Soma e Atribuição -= Subtração e Atribuição *= Multiplicação e Atribuição %= Resto de Divisão e Atribuição /= Divisão e Atribuição &= Operação AND e Atribuição |= Operação OR e Atribuição ^= EXCLUSIVE-OR e Atribuição <<= Deslocamento para Esquerda e Atribuição >>= Deslocamento para Direita e Atribuição 16.02.14 Linguagem C Rodolfo Goya 19
  • 20. Comandos de Atribuição O lado esquerdo da atribuição é sempre uma variável: Variável = Constante i = 10; Variável = Variável x = y; Variável = Expressão z = x + y – 1; i = i + 1; Uma atribuição é também uma operação com resultado: a = i = j + 1; b = x + ( y = c + d ); 16.02.14 Linguagem C Rodolfo Goya 20
  • 21. Comandos de Atribuição – Cuidados Atribuição é um comando e não tem relação com o uso do símbolo “=” em equações matemáticas: a = a + 1; (isso não faria sentido em uma equação) Ordem de avaliação: da direita para a esquerda: a = b = c = d = 1; Atribuição e comparação: a = 20 é diferente de a == 20 No primeiro caso faz com que a passe a valer 20. No segundo caso, o valor de a não é alterado. A expressão resulta em 0 se a for diferente de 20 e resulta em 1 se a for 20. 16.02.14 Linguagem C Rodolfo Goya 21
  • 22. Comandos de Atribuição Aritmética Formas compactas de produzir expressões: += -= i += 10; equivale a: i = i + 10; i -= 10; equivale a: i = i - 10; *= %= /= i *= 10; equivale a: i = i * 10; i %= 10; equivale a: i = i % 10; i /= 10; equivale a: i = i / 10; Uma atribuição é também uma operação com resultado: a = i += j + 1; b = x + ( y *= c + d ); 16.02.14 Linguagem C Rodolfo Goya 22
  • 23. Precedência de operadores Operador Associatividade ( ) Esquerda para Direita ++ -- Direita para Esquerda +(sinal) Direita para Esquerda -(sinal) Direita para Esquerda ! ~ Direita para Esquerda * / % Esquerda para Direita + - Esquerda para Direita >> << Esquerda para Direita = = != Esquerda para Direita & Esquerda para Direita ^ Esquerda para Direita | Esquerda para Direita && Esquerda para Direita || Esquerda para Direita = += -= *= %= /=&= |= <<= >>= Direita para Esquerda , (vírgula) Esquerda para Direita 16.02.14 Linguagem C Rodolfo Goya 23