Professor: Mauro Jansen
Microprocessadores II
Revisão de Linguagem de Programação:
Linguagem C
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1 2
Introdução à linguagem
C
Prof. Mauro Jansen
Histórico
 Criada na década de 70 por Denis
Ritchie (Bell Labs)
 Objetivo: ser uma linguagem mais
fác...
Prof. Mauro Jansen
Características
 Genérica: usada para a criação de
programas para diversas áreas
 Ex: aplicativos, si...
Prof. Mauro Jansen
Características
 É “case sensitive”: minúsculas e
maiúsculas fazem diferença
 Variável “nome” é difer...
Prof. Mauro Jansen
O pré-processador
 Parte do compilador C que trata
alguns textos (comandos) do código-
fonte antes da ...
Prof. Mauro Jansen
Diretivas do pré-processador
 #define: define um identificador e
uma sequência de caracteres que
será ...
Prof. Mauro Jansen
Estrutura básica de um
programa em C
Linguagem de Programação
Linguagem C – parte 1 8
#Include <bibliot...
Prof. Mauro Jansen
Comentários
 Comentários são úteis para
documentar o programa, e devem ser
sempre usados
 Existe dois...
Prof. Mauro Jansen
Palavras reservadas
Linguagem de Programação
Linguagem C – parte 1 10
 São os comandos e funções própr...
Prof. Mauro Jansen
Exemplo de programa em C
Linguagem de Programação
Linguagem C – parte 1 11
/*
Programa: calcular a médi...
Prof. Mauro Jansen
Comando de saída: printf
 Sintaxe: printf(<string de controle>,<lista de argumentos>)
 Códigos de con...
Prof. Mauro Jansen
Comando de entrada: scanf
 Sintaxe:
scanf(<string de controle>,<lista de argumentos>)
 Exemplo:
Lingu...
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1 14
Tipos de dados,
constantes, variáveis,
operadores e e...
Prof. Mauro Jansen
Tipos de dados
 A linguagem C tem os tipos básicos
 Char (caractere), Int (inteiro), float (real),
do...
Prof. Mauro Jansen
Tipos de dados
Linguagem de Programação
Linguagem C – parte 1 16
Prof. Mauro Jansen
Constantes e variáveis
 Constante: porção de dados que não muda
seu valor durante a execução do progra...
Prof. Mauro Jansen
Constantes de barra invertida
 São códigos que iniciam com uma barra invertida
que representam uma con...
Prof. Mauro Jansen
Regras para nomes de
variáveis
 Começar com letra ou sublinhado (_)
 Caracteres seguintes podem ser
l...
Prof. Mauro Jansen
Declaração e inicialização de
variáveis
 A declaração é feita da seguinte
forma:
 Obs: Na linguagem C...
Prof. Mauro Jansen
Declaração e inicialização de
variáveis
 Inicialização: podemos atribuir valor
no momento da declaraçã...
Prof. Mauro Jansen
Operadores aritméticos
 Usados em operações matemáticas
Linguagem de Programação
Linguagem C – parte 1...
Prof. Mauro Jansen
Operadores relacionais
 Usados em comparações entre
valores
Linguagem de Programação
Linguagem C – par...
Prof. Mauro Jansen
Operadores lógicos
 Usados em expressões lógicas
compostas
Linguagem de Programação
Linguagem C – part...
Prof. Mauro Jansen
Exemplo com operadores e
expressões
Linguagem de Programação
Linguagem C – parte 1 25
#Include <stdio.h...
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1 26
Estruturas de controle e
fluxo em C
Prof. Mauro Jansen
Estrutura condicional if
Equivalente em pseudocódigo: se-senão-fimse
 Sintaxe:
 Se a condição for ver...
Prof. Mauro Jansen
Estrutura condicional if (se) -
Exemplo
Linguagem de Programação
Linguagem C – parte 1 28
/*
Programa: ...
Prof. Mauro Jansen
Estrutura condicional switch-case
Equivalente pseudocódigo: escolha
Linguagem de Programação
Linguagem ...
Prof. Mauro Jansen
Estrutura condicional switch-case
Exemplo
Linguagem de Programação
Linguagem C – parte 1 30
#Include <s...
Prof. Mauro Jansen
Operador ternário
 Operador que permite simplificar
tomadas de decisão simples
 Sintaxe:
 Exemplo:
<...
Prof. Mauro Jansen
Estrutura de repetição for
Equivalente pseudocódigo: para - fimpara
 É a repetição contada. Sintaxe:
...
Prof. Mauro Jansen
Estrutura de repetição for
exemplo:
 Programa para contar de 1 a 100:
#include <stdio.h>
{
int n;
for(...
Prof. Mauro Jansen
Estrutura de repetição while
Equivalente pseudocódigo: enquanto–faça-
fimenquanto
 Sintaxe:
 Inicia e...
Prof. Mauro Jansen
Estrutura de repetição while
Exemplo:
 Soma quantidade indeterminada de
números
Linguagem de Programaç...
Prof. Mauro Jansen
Estrutura de repetição
do..while
Equivalente pseudocódigo: repita - até
 Sintaxe:
 Executa o bloco de...
Prof. Mauro Jansen
Estrutura de repetição
do..while
Exemplo: Mesmo anterior, agora com do..while:
Linguagem de Programaçã...
Prof. Mauro Jansen
Comandos que afetam as
estruturas de repetição
 Comando break: interrompe a
repetição, continuando apó...
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1 39
Procedimentos e funções
em C
Prof. Mauro Jansen
Procedimentos e funções
 Também chamados de sub-programas
ou rotinas, são programas que
executam uma f...
Prof. Mauro Jansen
Por que usar funções?
 Reaproveitar código já criado (por
você ou outros programadores)
 Evitar repet...
Prof. Mauro Jansen
Procedimentos e funções em
C
 A linguagem C tem apenas funções
 O tipo da função diz se ela retorna o...
Prof. Mauro Jansen
A função main()
 Como já vimos, todo programa em C
tem pelo menos uma função:
Linguagem de Programação...
Prof. Mauro Jansen
Definindo funções em C
 Sintaxe:
 Os parâmetros são os dados que serão
usados pela função para realiz...
Prof. Mauro Jansen
Chamada de funções
Linguagem de Programação
Linguagem C – parte 1 45
void main()
{
// comando anterior ...
Prof. Mauro Jansen
Exemplo de função
Linguagem de Programação
Linguagem C – parte 1 46
#Include <stdio.h>
float media(floa...
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 3 47
Ponteiros
Prof. Mauro Jansen
Memória e endereços
 Local de armazenamento de
informações binárias
 Podem ser circuitos semicondutor...
Prof. Mauro Jansen
Memória e endereços
Linguagem de Programação
Linguagem C – parte 3 49
Endereço Conteúd
o
0000h 00
0001h...
Prof. Mauro Jansen
Ponteiros
 Toda variável é armazenada na
memória do computador em uma
posição que possui um ENDEREÇO
...
Prof. Mauro Jansen
Operadores & e *
 Operador & (endereço de)
 Sintaxe: &<variável>
 Uso: retorna o endereço de uma var...
Prof. Mauro Jansen
Declarando ponteiros
 Sintaxe: <tipo> *<nome da
variável>;
 Exemplo:#include <stdio.h>
int main()
{
i...
Prof. Mauro Jansen
Ponteiros – ilustração do
funcionamento
Linguagem de Programação
Linguagem C – parte 3 53
Endereç
o
Var...
Próximos SlideShares
Carregando em…5
×

Microprocessadores ii revisão de linguagem de programação (parte2)

531 visualizações

Publicada em

Microprocessadores: revisão de Linguagem de programação (parte 2)

Publicada em: Dispositivos e hardware
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
531
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
33
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Microprocessadores ii revisão de linguagem de programação (parte2)

  1. 1. Professor: Mauro Jansen Microprocessadores II Revisão de Linguagem de Programação: Linguagem C
  2. 2. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 2 Introdução à linguagem C
  3. 3. Prof. Mauro Jansen Histórico  Criada na década de 70 por Denis Ritchie (Bell Labs)  Objetivo: ser uma linguagem mais fácil que o Assembler mas que permitisse grande controle sobre o hardware, para a programação do sistema Unix  Influência das linguagens BCPL e B Linguagem de Programação Linguagem C – parte 1 3
  4. 4. Prof. Mauro Jansen Características  Genérica: usada para a criação de programas para diversas áreas  Ex: aplicativos, sistemas operacionais, automação industrial, engenharia, física, química, etc.  Linguagem “mista”: tem características de linguagem de alto e baixo nível  Induz a uma boa estruturação de programas  Influenciou várias outras linguagens Linguagem de Programação Linguagem C – parte 1 4
  5. 5. Prof. Mauro Jansen Características  É “case sensitive”: minúsculas e maiúsculas fazem diferença  Variável “nome” é diferente de “Nome”  É compilada (gera arq.executável) Linguagem de Programação Linguagem C – parte 1 5
  6. 6. Prof. Mauro Jansen O pré-processador  Parte do compilador C que trata alguns textos (comandos) do código- fonte antes da tradução em código executável  Esses comandos são as diretivas do pré-processador. Ex:  #define  #include Linguagem de Programação Linguagem C – parte 1 6
  7. 7. Prof. Mauro Jansen Diretivas do pré-processador  #define: define um identificador e uma sequência de caracteres que será substituída pelo identificador no código-fonte. Ex:  #include: inclui um cabeçalho ou outro arquivo-fonte no ponto onde está a diretiva. Ex: Linguagem de Programação Linguagem C – parte 1 7 #define PI 3.1415 #include <stdio.h> Em todo o código fonte, PI será substituído por 3.1415 Inclui o arquivo “stdio.h” (definições padrões para entrada e saída de dados) no programa-fonte
  8. 8. Prof. Mauro Jansen Estrutura básica de um programa em C Linguagem de Programação Linguagem C – parte 1 8 #Include <biblioteca1.h> #Include <biblioteca2.h> ... Void main() { <Declaração de variáveis> ... <comandos> ... } Inclusão de arquivo de bibliotecas de comandos Função main(): é obrigatória. É a primeira função chamada quando o programa é iniciado Delimitadores de inicio e fim de bloco de comandos
  9. 9. Prof. Mauro Jansen Comentários  Comentários são úteis para documentar o programa, e devem ser sempre usados  Existe dois modos:  Posição livre: usa-se o comando //  Várias linhas: usa-se o comando /* */ Linguagem de Programação Linguagem C – parte 1 9
  10. 10. Prof. Mauro Jansen Palavras reservadas Linguagem de Programação Linguagem C – parte 1 10  São os comandos e funções próprias do vocabulário da linguagem. Ex.:  auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, struct, switch, typedef, union, unsigned, void, volatile, while, etc.
  11. 11. Prof. Mauro Jansen Exemplo de programa em C Linguagem de Programação Linguagem C – parte 1 11 /* Programa: calcular a média entre duas notas Autor...: prof.Mauro */ #Include <stdio.h> Void main() { float nota1,nota2; // declaração de variáveis printf(“Digite a primeira nota: “); scanf(“%f”,&nota1); printf(“Digite a segunda nota: “); scanf(“%f”,&nota2) printf(“A média é: %f”,(nota1+nota2)/2); }
  12. 12. Prof. Mauro Jansen Comando de saída: printf  Sintaxe: printf(<string de controle>,<lista de argumentos>)  Códigos de controle:  Exemplos: printf(“O valor de PI é %f”,3.1415); printf(“Meu nome é %s e eu tenho %d anosn”,”João”,18); Linguagem de Programação Linguagem C – parte 1 12 Código Formato Código Formato %d Inteiro com sinal %X Hexadecimal %f Float (número real) %o Octal %c Caractere %E Notação científica %s String %p Ponteiro %u Inteiro sem sinal Mensagem (string) com códigos de controle embutidos na mesma Valores que serão substituídos na mensagem, no lugar de cada código de controle iniciado por % n salta linha
  13. 13. Prof. Mauro Jansen Comando de entrada: scanf  Sintaxe: scanf(<string de controle>,<lista de argumentos>)  Exemplo: Linguagem de Programação Linguagem C – parte 1 13 #Include <stdio.h> Void main() { char c; float n; printf(“Digite uma letra: “); scanf(“%c”,&c); printf(“Digite um valor real: “); scanf(“%f”,&n); printf(“Letra: %c , número: %f”,c,f); } códigos de controle que identificarão o tipo de dado a ser digitado pelo usuário Variável(is) que receberá(ão) os dados, precedida(s) pelo sinal &
  14. 14. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 14 Tipos de dados, constantes, variáveis, operadores e expressões em C
  15. 15. Prof. Mauro Jansen Tipos de dados  A linguagem C tem os tipos básicos  Char (caractere), Int (inteiro), float (real), double (real)  E modificadores de tipo, que vêm antes do tipo e podem ser combinados:  Unsigned: sem sinal  Signed: com sinal (padrão)  Short: menor precisão (padrão)  Long: maior precisão Linguagem de Programação Linguagem C – parte 1 15
  16. 16. Prof. Mauro Jansen Tipos de dados Linguagem de Programação Linguagem C – parte 1 16
  17. 17. Prof. Mauro Jansen Constantes e variáveis  Constante: porção de dados que não muda seu valor durante a execução do programa. Exemplos: 23, ‘X’, “Linguagem C”, 1.234  Constantes não precisam de nome, mas podemos nomeá-las usando a diretiva #define. Ex: #define PI 3.1415  Variável: porções de dados que podem mudar seu valor durante a execução do programa  Uma variável precisa ter um nome e tipo e precisa ser declarada e inicializada Linguagem de Programação Linguagem C – parte 1 17
  18. 18. Prof. Mauro Jansen Constantes de barra invertida  São códigos que iniciam com uma barra invertida que representam uma constante tipo caractere dentro de strings, como no comando printf. Veja alguns:Código Significado n Nova linha (new line) ” Aspas ’ Apóstrofo 0 Nulo Barra invertida t Tabulação horizontal a Sinal sonoro (beep) N Constante octal (N é o valor da constante) xN Constante hexadecimal (N é o valor da constante) Muito usado no printf para saltar para próxima linha
  19. 19. Prof. Mauro Jansen Regras para nomes de variáveis  Começar com letra ou sublinhado (_)  Caracteres seguintes podem ser letras, números ou sublinhado  Não pode ser palavra reservada ou função  Maiúsculas e minúsculas fazem diferença Linguagem de Programação Linguagem C – parte 1 19
  20. 20. Prof. Mauro Jansen Declaração e inicialização de variáveis  A declaração é feita da seguinte forma:  Obs: Na linguagem C não há uma seção específica para declaração de variáveis  Exemplos: Linguagem de Programação Linguagem C – parte 1 20 <tipo de dado> <lista de variáveis>; char ch,letra; long cont;
  21. 21. Prof. Mauro Jansen Declaração e inicialização de variáveis  Inicialização: podemos atribuir valor no momento da declaração ou depois, usando o operador de atribuição “=“ : Linguagem de Programação Linguagem C – parte 1 21 Char ch=‘D’; Int num=123; num=10;
  22. 22. Prof. Mauro Jansen Operadores aritméticos  Usados em operações matemáticas Linguagem de Programação Linguagem C – parte 1 22 Operador Ação + Soma - Subtração ou troca de sinal * Multiplicação / Divisão % Resto da divisão ++ Incrementa valor de uma variável -- Decrementa valor de uma variável += Atribuição com soma -= Atribuição com subtração
  23. 23. Prof. Mauro Jansen Operadores relacionais  Usados em comparações entre valores Linguagem de Programação Linguagem C – parte 1 23 Operador Significado > Maior >= Maior ou igual < Menor <= Menor ou igual == Igual != Diferente
  24. 24. Prof. Mauro Jansen Operadores lógicos  Usados em expressões lógicas compostas Linguagem de Programação Linguagem C – parte 1 24 Operador Significado && Operador E. Retorna verdadeiro se ambos valores forem verdadeiros || Operador OU. Retorna verdadeiro se pelo menos um for verdadeiro ! Operador NÃO. Retorna o contrário do valor informado.
  25. 25. Prof. Mauro Jansen Exemplo com operadores e expressões Linguagem de Programação Linguagem C – parte 1 25 #Include <stdio.h> Void main() { int a,b,c,d; a=10; b=22; c=30; d=40; printf(“a+b = %d”,a+b); // soma a e b printf(“a-b = %d”,a-b); // subtrai b de a printf(“b%%a = %d”,b%a); // resto da divisão de b por a a++; // incrementa a (mesmo que a=a+1) b--; // decrementa b (mesmo que b=b-1) c+=a; // soma a em c (mesmo que c=c+a) d-=b; // soma e em d (mesmo que d=d+b) printf(“a=%d, b=%d, c=%d, d=%d”,a,b,c,d); } OBS: No próximo bloco veremos exemplos com operadores relacionais e lógicos
  26. 26. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 26 Estruturas de controle e fluxo em C
  27. 27. Prof. Mauro Jansen Estrutura condicional if Equivalente em pseudocódigo: se-senão-fimse  Sintaxe:  Se a condição for verdadeira, executa bloco de comandos 1, senão executa bloco de comandos 2  OBS: Um bloco de comando composto por mais de um comando deve iniciar com { e terminar com }  O bloco do else é opcional Linguagem de Programação Linguagem C – parte 1 27 If(<condição>) <bloco de comandos> [else <bloco de comandos 2>]
  28. 28. Prof. Mauro Jansen Estrutura condicional if (se) - Exemplo Linguagem de Programação Linguagem C – parte 1 28 /* Programa: calcular a média e mostrar situação */ #Include <stdio.h> Void main() { float nota1,nota2,media; // declaração de variáveis printf(“Digite a primeira nota: “); scanf(“%f”,&nota1); printf(“Digite a segunda nota: “); scanf(“%f”,&nota2); media=(nota1+nota2)/2; printf(“A média é: %f n”,media); if(media>=7) printf(“Você está aprovado.n”); else printf(“Você está de recuperação.n”); }
  29. 29. Prof. Mauro Jansen Estrutura condicional switch-case Equivalente pseudocódigo: escolha Linguagem de Programação Linguagem C – parte 1 29  Sintaxe: Switch (<variável>) { case <constante1>: <declaração1>; break; case <constante2>: <declaração2>; break; case <constante_n>: <declaraçãoN>; break; default: <declaração default> }
  30. 30. Prof. Mauro Jansen Estrutura condicional switch-case Exemplo Linguagem de Programação Linguagem C – parte 1 30 #Include <stdio.h> void main() { float n1,n2; char op; printf(“Digite um número: “); scanf(“%f”,&n1); printf(“Digite a operação (+,-,* ou /): “); scanf(“%s”,&op); printf(“Digite outro número: “); scanf(“%f”,&n2); switch (op) { case ‘+’: printf(“Soma=%f”,n1+n2); break; case ‘-’: printf(“Subtração=%f”,n1-n2); break; case ‘*’: printf(“Multiplicação=%f”,n1*n2); break; case ‘/’: printf(“Divisão=%f”,n1/n2); break; default: printf(“Você digitou uma operação inválida!”); } }
  31. 31. Prof. Mauro Jansen Operador ternário  Operador que permite simplificar tomadas de decisão simples  Sintaxe:  Exemplo: <expressão1> ? <expressão2> : <expressão3> max=(a>b) ? a : b; If (a>b) max=a; Else max=b; Equivale a:
  32. 32. Prof. Mauro Jansen Estrutura de repetição for Equivalente pseudocódigo: para - fimpara  É a repetição contada. Sintaxe:  Inicialização: expressão de inicialização. Ex: n=0  Condição: expressão condição para continuar a repetição. Ex: n<=10  Incremento: expressão de incremento. Ex: n++ Linguagem de Programação Linguagem C – parte 1 32 for(<inicialização>;<condição>;<incremento>) <bloco de comandos>
  33. 33. Prof. Mauro Jansen Estrutura de repetição for exemplo:  Programa para contar de 1 a 100: #include <stdio.h> { int n; for(n=1 ; n<=100 ; n++) { printf("Contando: %dn",n); } }
  34. 34. Prof. Mauro Jansen Estrutura de repetição while Equivalente pseudocódigo: enquanto–faça- fimenquanto  Sintaxe:  Inicia e repete o bloco de comandos enquanto a condição for verdadeira  É a repetição com teste no início Linguagem de Programação Linguagem C – parte 1 34 while(<condição>) <bloco de comandos>
  35. 35. Prof. Mauro Jansen Estrutura de repetição while Exemplo:  Soma quantidade indeterminada de números Linguagem de Programação Linguagem C – parte 1 35 #include <stdio.h> int main() { float n=1,soma=0; while (n!=0) { printf("Digite um numero (zero=fim):"); scanf("%f",&n); soma+=n; } printf("A soma dos numeros digitados é: %f",soma); }
  36. 36. Prof. Mauro Jansen Estrutura de repetição do..while Equivalente pseudocódigo: repita - até  Sintaxe:  Executa o bloco de comando e repete enquanto a condição for verdadeira  É a repetição com teste no final Linguagem de Programação Linguagem C – parte 1 36 do <bloco de comandos> While(<condição>);
  37. 37. Prof. Mauro Jansen Estrutura de repetição do..while Exemplo: Mesmo anterior, agora com do..while: Linguagem de Programação Linguagem C – parte 1 37 #include <stdio.h> { float n=0,soma=0; do { printf("Digite um numero (zero=fim):"); scanf("%f",&n); soma+=n; } while (n!=0); printf("A soma dos numeros digitados é: %fn",soma); }
  38. 38. Prof. Mauro Jansen Comandos que afetam as estruturas de repetição  Comando break: interrompe a repetição, continuando após o bloco de comandos a ser repetido  Comando continue: interrompe apenas a repetição atual, voltando ao início do laço Linguagem de Programação Linguagem C – parte 1 38
  39. 39. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 39 Procedimentos e funções em C
  40. 40. Prof. Mauro Jansen Procedimentos e funções  Também chamados de sub-programas ou rotinas, são programas que executam uma função específica que é acessada diversas vezes  Procedimento: não retorna valor ao programa que o chamou  Função: retorna valor  Exemplos: função fatorial (calcula o fatorial de um número) Linguagem de Programação Linguagem C – parte 1 40
  41. 41. Prof. Mauro Jansen Por que usar funções?  Reaproveitar código já criado (por você ou outros programadores)  Evitar repetição de código dentro do mesmo programa  Separar o programa em blocos, facilitando a leitura, o entendimento e a manutenção Linguagem de Programação Linguagem C – parte 1 41
  42. 42. Prof. Mauro Jansen Procedimentos e funções em C  A linguagem C tem apenas funções  O tipo da função diz se ela retorna ou não valor:  Tipo void: função que não retorna valor  Outros tipos básicos (int, float, etc.): funções que retornam valor Linguagem de Programação Linguagem C – parte 1 42
  43. 43. Prof. Mauro Jansen A função main()  Como já vimos, todo programa em C tem pelo menos uma função: Linguagem de Programação Linguagem C – parte 1 43 #Include <biblioteca1.h> #Include <biblioteca2.h> ... Void main() { <Declaração de variáveis> ... <comandos> ... } Inclusão de arquivo de bibliotecas de comandos Função main(): é obrigatória. É a primeira função chamada quando o programa é iniciado Delimitadores de inicio e fim de bloco de comandos
  44. 44. Prof. Mauro Jansen Definindo funções em C  Sintaxe:  Os parâmetros são os dados que serão usados pela função para realizar sua operação ou retornar algum resultado  A lista de parâmetros é opcional, mas se for usada deve ser especificado o tipo de cada parâmetro Linguagem de Programação Linguagem C – parte 1 44 tipo nome da função(tipo parâmetro1,...,tipo parâmetroN) { // comandos da função }
  45. 45. Prof. Mauro Jansen Chamada de funções Linguagem de Programação Linguagem C – parte 1 45 void main() { // comando anterior à chamada funcao1(2,3) // comando posterior à chamada } void funcao1(int a,int b) { // comandos da função }
  46. 46. Prof. Mauro Jansen Exemplo de função Linguagem de Programação Linguagem C – parte 1 46 #Include <stdio.h> float media(float nota1,float nota2) { return( (nota1+nota2)/2); } void main() { printf(“%fn”,media(8,9)); }
  47. 47. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 3 47 Ponteiros
  48. 48. Prof. Mauro Jansen Memória e endereços  Local de armazenamento de informações binárias  Podem ser circuitos semicondutores, mídias magnéticas, óticas, etc.  Cada posição de memória é identificada por um ENDEREÇO  Endereçamento é o ato de acessar um dado em uma posição de memória (para isso precisamos especificar o endereço) Linguagem de Programação Linguagem C – parte 3 48
  49. 49. Prof. Mauro Jansen Memória e endereços Linguagem de Programação Linguagem C – parte 3 49 Endereço Conteúd o 0000h 00 0001h EB 0002h 29 ... FFFFh 00 Exemplo de bloco de memória com 64K posições (64KB O conteúdo de cada posição de memória pode ser um dado (numérico ou caractere) ou uma instrução Os endereços normalmente são identificados por números hexadecimais (h)
  50. 50. Prof. Mauro Jansen Ponteiros  Toda variável é armazenada na memória do computador em uma posição que possui um ENDEREÇO  Um ponteiro é uma variável especial que guarda um endereço de memória  Com ponteiros, podemos acessar e modificar dados diretamente na memória Linguagem de Programação Linguagem C – parte 3 50 Ponteiro é um dos recursos que permitem à linguagem C acessar os recursos do hardware
  51. 51. Prof. Mauro Jansen Operadores & e *  Operador & (endereço de)  Sintaxe: &<variável>  Uso: retorna o endereço de uma variável  Exemplo: scanf(“%d”,&num)  Usado para inicializar ponteiros.  Operador * (conteúdo de)  Sintaxe: *<variável tipo ponteiro>  Uso: retorna o conteúdo do endereço de memória guardado na variável, que deve ser do tipo ponteiro Linguagem de Programação Linguagem C – parte 3 51
  52. 52. Prof. Mauro Jansen Declarando ponteiros  Sintaxe: <tipo> *<nome da variável>;  Exemplo:#include <stdio.h> int main() { int x=15; int *pInt; // ponteiro para variável de tipo inteiro pInt=&x; printf("Conteudo de x: %dn",*pInt); // conteúdo de x printf("Endereço de x: %dn",pInt); // endereço de x } Linguagem de Programação Linguagem C – parte 3 52 Observe que todo ponteiro deve ter o “*” (asterisco) antes do nome
  53. 53. Prof. Mauro Jansen Ponteiros – ilustração do funcionamento Linguagem de Programação Linguagem C – parte 3 53 Endereç o Variáve l Conteúdo 0000h 00 0001h EB 02F0h c ‘A’ ... FFFFh 00 Declaração e inicialização de uma variável c tipo char, que ficou no endereço 2F0 char c=‘A’; char *pc=&c; printf("%c",*pc); O endereço da variável cé guardado no ponteiro *pc O comando printf acessa o conteúdo do endereço guardado em *pc (que é o valor da variável c)

×