Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi

Tamanho: px
Começar a partir da página:

Download "Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi"

Transcrição

1 Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi BCC /2 Baseado nos slides do Prof. Guillermo Cámara-Chávez

2 Aulas anteriores Vetores Matrizes Cadeias de caracteres 2 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

3 Aula de hoje 1 Memória 2 Ponteiros 3 Ponteiros e passagem por referência 4 Ponteiros e vetores 5 Próxima aula 2 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

4 Aula de hoje 1 Memória 2 Ponteiros 3 Ponteiros e passagem por referência 4 Ponteiros e vetores 5 Próxima aula 2 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

5 Memória Memoria I Endereço A B C D Valor memória está formada por várias élulas. A memória é formada por várias ada célula contém células. um endereço e um alor. tamanho do Cada endereço célulae ocontém tamanho um endereço o valor dependeme um valor da arquitetura (veja exemplo do ao omputador lado). (32/64 bits) O tamanho do endereço e do Endereço valor dependem Valor da arquitetura D (32/64 bits). 2/81 3 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

6 Memória Memoria II Endereço A B C D Valor i i n t main ( ) { c h a r i ; r e t u r n 0 ; } Exemplo: O caractere i ocupa 1 byte na memória (considerando uma arquitetura de 32 bits) 1 int main() Declaro 2 { um caracter chamado i. 3 char i; Os4caracteres return ocupam 0; 1 byte na memória 5 } (para uma arquitetura de 32 bits) 3/81 4 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

7 Memória Memoria III Endereço A B C D Valor i i n t main ( ) { i n t i ; r e t u r n 0 ; } Exemplo: Inteiro i ocupa 4 bytes na memória (considerando uma arquitetura de 32 bits) 1 int main() Declaro um número inteiro 2 { chamado 3 i. int i; 4 return 0; Os inteiros ocupam 4 bytes na 5 } memória (para uma arquitetura de 32 bits) 4/81 5 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

8 Memória Memoria IV Endereço A B C D Valor i i n t main ( ) { f l o a t i ; r e t u r n 0 ; } Exemplo: Ponto flutuante i ocupa 4 bytes na memória (considerando uma arquitetura de 32 bits) 1 int main() Declaro um número ponto 2 { flutuante 3 chamado float i; i. 4 return 0; Os flutuantes ocupam 4 bytes 5 } na memória (para uma arquitetura de 32 bits) 5/81 6 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

9 Memória Memoria V Endereço A B C D Valor i i n t main ( ) { d o u b l e i ; r e t u r n 0 ; } Exemplo: Double i ocupa 8 bytes na memória (considerando uma arquitetura de 32 bits) Declaro 1 int ummain() número flutuante de 2 dupla { precisão chamado i. 3 double i; Os4flutuantes return de dupla 0; precisão ocupam 5 } 8 bytes na memória (para uma arquitetura de 32 bits) 6/81 7 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

10 Endereços Ao declararmos uma variável x, ela será associada a: Um nome (x) Um endereço de memória ou referência (0xbfd267c4) Um valor (9) 1 int x = 9; Para acessar o endereço de uma variável, utilizamos o operador & 1 int x; 2 cout << "O endereço de memória de x é " << &x << endl; 8 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

11 Aula de hoje 1 Memória 2 Ponteiros 3 Ponteiros e passagem por referência 4 Ponteiros e vetores 5 Próxima aula 8 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

12 Ponteiros Um ponteiro (apontador ou pointer) é um tipo especial de variável que armazena um endereço de memória Ponteiros são declarados utilizando o caractere especial *: 1 int *pi; // pi é um ponteiro do tipo int 2 char *pc; // pc é um ponteiro do tipo char 3 float *pf; // pf é um ponteiro do tipo float 4 double *pd; // pd é um ponteiro do tipo double Vários podem ser declarados em uma única linha: 1 int *p1, *p2, *p3; 9 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

13 Ponteiros O conteúdo da memória apontada por um ponteiro se refere ao valor armazenado no endereço de memória para o qual o ponteiro aponta. Este conteúdo (valor) pode ser alterado usando o operador * Exemplo: 1 int main() 2 { 3 int x = 10, y = 0; 4 int *px = &x; 5 y = *px; // y recebe o conteúdo do endereço apontado por x 6 cout << "y = " << y << endl; 7 return 0; 8 } O que será impresso? 1 y = / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

14 Ponteiros Exemplo: 1 int main() 2 { 3 int x = 0; 4 int *px; 5 px = &x; 6 *px = 99; 7 cout << "x = " << x << endl; 8 return 0; 9 } O que será impresso? 1 x = / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

15 Ponteiros Exemplo: 1 int main() 2 { 3 int x = 100; 4 int *px = &x; 5 cout << "valor de x = " << x << endl; 6 cout << "endereço de x = " << &x << endl; 7 cout << "endereço de x = " << px << endl ; 8 cout << "valor de x = " << *px << endl ; 9 return 0; 10 } Exemplo de saída (computador com 64 bits): 1 valor de x = endereço de x = 0x7ffedfc1e378 3 endereço de x = 0x7ffedfc1e378 4 valor de x = / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

16 Exemplo: ponteiros e memória Memoria VI Endereço A B C D E F Valor c i f d i n t main ( ) Exemplo: { c h a r Note c ; os quatro ponteiros... i n t i ; f l o 1 a t int f ; main() d o u2 b l e{ d ; r e 3t u r n 0 ; char *c; } 4 int *i; 5 float *f; 6 double *d; Declaração 7 de return quatro0; ponteiros(c, i, f8 e d). } Cada ponteiro de um tipo diferente(char, int, float, double). Todos requerem o mesmo Todostamanho eles ocupam(32/64 o mesmo bits). espaço na memória, 4 bytes. Isso acontece Lembre-se: porque um todosponteiro eles armazenam armazena endereços umdeendereço memória, de e o tamanho de um endereço memória, independente do 7/81tipo. memória é o mesmo para todos os tipos. 13 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

17 Exemplo: ponteiros e memória Memoria IX Exemplo de uso: Endereço A B C D C D Valor i 1 int main() 2 { i n t main 3 ( ) int i; { 4 i = 15; i n 5t i ; char c = 's'; i = ; int *p = &i; c h a7 r c = s *p = ; 25; i n 8t p = &i return ; 0; 9 p = 2} 5 ; r e t u r n 0 ; } A memória para o inteiro i é alocada. A variável c do tipo char é criada e inicializada com o valor s. 10/81 14 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

18 Exemplo: ponteiros e memória Memoria IX Exemplo de uso: Endereço A B C D C D Valor 15 i 1 int main() 2 { i n t main 3 ( ) int i; { 4 i = 15; i n 5t i ; char c = 's'; i = ; int *p = &i; c h a7 r c = s *p = ; 25; i n 8t p = &i return ; 0; 9 p = 2} 5 ; r e t u r n 0 ; } O conteúdo de i é alterado para 15 (representação está em A variável decimal, c do tipo maschar na prática é é tudo criadaem e inicializada binário). com o valor s. 10/81 14 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

19 Exemplo: ponteiros e memória Memoria IX Exemplo de uso: Endereço A B C D C D Valor 15 i s c 1 int main() 2 { i n t main 3 ( ) int i; { 4 i = 15; i n 5t i ; char c = 's'; i = ; int *p = &i; c h a7 r c = s *p = ; 25; i n 8t p = &i return ; 0; 9 p = 2} 5 ; r e t u r n 0 ; } A memória para o caractere c é alocada e inicializada com s. A variável c do tipo char é criada e inicializada com o valor s. 10/81 14 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

20 Exemplo: ponteiros e memória Memoria XI Exemplo de uso: Endereço A B C D C D Valor 15 s i c p i n t main ( ) { 1 int main() i n 2 t i ;{ i = ; int i; c h4a r c = i s = ; 15; 5 i n t p = &i char ; c = 's'; 6 int *p = &i; p = 2 5 ; 7 *p = 25; r e t u r n 0 ; 8 return 0; } 9 } Finalizando, O ponteiro fazemos deuma inteiro p é atribuição. declarado e inicializado com o Colocamos endereço 25 node valor memória de i apontado por p. Como visto no slide anterior Neste exemplo p aponta para fictício, i p é igual a Desse modo, colocamos (em hexadecimal). 25 no valor da variável i. 12/81 14 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

21 Exemplo: ponteiros e memória Memoria XI Exemplo de uso: Endereço A B C D C D Valor 25 i s c p i n t main ( ) { 1 int main() i n 2 t i ;{ i = ; int i; c h4a r c = i s = ; 15; 5 i n t p = &i char ; c = 's'; 6 int *p = &i; p = 2 5 ; 7 *p = 25; r e t u r n 0 ; 8 return 0; } 9 } Finalizando, Agora, fazemos o conteúdo uma da memória atribuição. apontada por p é atualizado para Colocamos no valor apontado por p. Como visto no slide anterior Ou seja, p aponta o conteúdo para i do endereço Desse modo, colocamos é alterado 25 nopara 25. valor da variável i. 12/81 14 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

22 Tipos de ponteiros Há vários tipos de ponteiros: Ponteiros para caracteres Ponteiros para inteiros Ponteiros para vetores Ponteiros para ponteiros para inteiros etc... C++ requer que você especifique o tipo de ponteiro! 15 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

23 Aula de hoje 1 Memória 2 Ponteiros 3 Ponteiros e passagem por referência 4 Ponteiros e vetores 5 Próxima aula 15 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

24 Passagem por valor Qual o problema da função a seguir? 1 void nao_troca(int a, int b) 2 { 3 int aux = a; 4 a = b; 5 b = aux; 6 } Os parâmetros são passados por valor! Assim, cópias de a e b são passadas para a função. Logo: a função não efetua a troca de fato! 16 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

25 Passagem por referência C++ permite fazer passagem por referência: 1 void troca_ref(int &a, int &b) 2 { 3 int aux = a; 4 a = b; 5 b = aux; 6 } A função recebe a referência das variáveis a e b. Agora sim: a função trocará os valores das variáveis a e b passadas por parâmetro. 17 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

26 Passagem de ponteiros Ao contrário de C++, a linguagem C não implementa passagem por referência... A solução é utilizar ponteiros para simular a passagem por referência. 1 void troca(int *a, int *b) 2 { 3 int aux = *a; 4 *a = *b; 5 *b = aux; 6 } A função recebe ponteiros para duas variáveis. Em seguida, troca o conteúdo das memórias apontadas. 18 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

27 Como usar essas funções? Eis um exemplo de uso das três funções apresentadas: 1 int main() 2 { 3 int a, b; 4 5 a = 1; b = 2; 6 nao_troca(a, b); // valores a e b são passados (e não há troca) 7 cout << "a = " << a << ", b = " << b << endl; // a = 1, b = a = 1; b = 2; 10 troca_ref(a, b); // a e b são recebidos por referência 11 cout << "a = " << a << ", b = " << b << endl; // a = 2, b = a = 1; b = 2; 14 troca(&a, &b); // ponteiros para a e b são passados 15 cout << "a = " << a << ", b = " << b << endl; // a = 2, b = 1 16 } 19 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

28 Exemplo de execução assagem de apontadores IV 38/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

29 Exemplo de execução assagem de apontadores V 39/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

30 Exemplo de execução assagem de apontadores VI 40/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

31 Exemplo de execução assagem de apontadores VII 41/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

32 Exemplo de execução assagem de apontadores VIII 42/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

33 Exemplo de execução assagem de apontadores IX 43/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

34 Exemplo de execução assagem de apontadores X 44/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

35 Exemplo de execução assagem de apontadores XI 45/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

36 Exemplo de execução assagem de apontadores XII 46/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

37 Exemplo de execução assagem de apontadores XIII 47/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

38 Exemplo de execução assagem de apontadores XIV 48/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

39 Exemplo de execução assagem de apontadores XV 49/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

40 Exemplo de execução assagem de apontadores XVI 50/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

41 Exemplo de execução assagem de apontadores XVII 51/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

42 Exemplo de execução assagem de apontadores XVIII 52/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

43 Exemplo de execução assagem de apontadores XIX 53/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

44 Exemplo de execução assagem de apontadores XX 54/81 20 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

45 Exercício 1 Crie uma função que duplica o conteúdo da memória apontada por um ponteiro p. Utilize o protótipo a seguir: 1 void duplica(int *p); Exercício 2 Indique e corrija o erro do código a seguir: 1 int main() 2 { 3 int valor; 4 cin >> valor; 5 6 int *p = &valor; 7 p = p * p; 8 cout << "Valor ao quadrado = " << valor << endl; 9 10 return 0; 11 } 21 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

46 Aula de hoje 1 Memória 2 Ponteiros 3 Ponteiros e passagem por referência 4 Ponteiros e vetores 5 Próxima aula 21 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

47 Ponteiros e vetores Lembram de vetores? A variável que representa o vetor pode ser vista como um ponteiro. Mas... o que o código a seguir vai imprimir? 1 int v[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 2 cout << "*v = " << *v << endl; 1 *v = 1 *v imprime o conteúdo (do tipo int) que está no endereço de memória v, que é exatamente igual a v[0]. 22 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

48 Ponteiros e vetores Portanto: v[0] é equivalente a *v, que é equivalente a *(v+0) v[4] é equivalente a *(v+4) Aritmética de ponteiros: Ao somar 4 em um ponteiro do tipo int*, estamos pulando 4 inteiros. Assim, podemos utilizar indexação (v[4]) ou aritmética de ponteiros (*(v+4)) para ler/escrever na memória. 23 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

49 Ponteiros e vetores Qual a diferença prática das funções a seguir? 1 void imprimevetor1(int v[], int n) { 2 for (int i = 0; i < n; i++) 3 cout << v[i] << " "; 4 cout << endl; 5 } 6 7 void imprimevetor2(int *v, int n) { 8 for (int i = 0; i < n; i++) 9 cout << v[i] << " "; 10 cout << endl; 11 } void imprimevetor3(int *v, int n) { 14 for (int i = 0; i < n; i++) 15 cout << *(v+i) << " "; 16 cout << endl; 17 } 24 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

50 Ponteiros e vetores Exemplos de utilização: 1 int main() 2 { 3 int v[5] = { 100, 101, 102, 103, 104 }; 4 5 imprimevetor1(v, 5); 6 imprimevetor2(v, 5); 7 imprimevetor3(v, 5); 8 9 return 0; 10 } Resultado: / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

51 Ponteiros e vetores Outro exemplo (agora com cadeia de caracteres): O que o código a seguir vai imprimir? 1 int main() 2 { 3 char c[100] = "Cadeia de caracteres!"; 4 cout << c+10 << endl; 5 } 1 caracteres! Como um vetor é representado por um ponteiro (endereço de memória), podemos usar aritmética de ponteiros! Neste exemplo, utilizamos aritmética de ponteiros para pular as 10 primeiras posições do array c. 26 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

52 Ponteiros e vetores E o código a seguir? O que vai imprimir? 1 int main() 2 { 3 char c[100] = "Cadeia de caracteres!"; 4 cout << &c[10] << endl; 5 } 1 caracteres! Se &x retorna o endereço de memória de x, então &c[10] retornará o endereço de memória da 10 a posição do array c. Ora, como um vetor é representado por um ponteiro (endereço de memória), o código acima funcionará. 27 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

53 Exercícios Exercício 1 Crie uma função que retorna o maior número em um vetor de inteiros utilizando artimética de ponteiros. Dica: utilize o protótipo a seguir. 1 int maior(int *vetor, int tamanho); 28 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

54 Aula de hoje 1 Memória 2 Ponteiros 3 Ponteiros e passagem por referência 4 Ponteiros e vetores 5 Próxima aula 28 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

55 Próxima aula Ponteiros e alocação dinâmica 29 / 29 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 23: Ponteiros

56 / 12 Perguntas?

Aula 24: Ponteiros e Alocação Dinâmica

Aula 24: Ponteiros e Alocação Dinâmica Aula 24: Ponteiros e Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula anterior Memória Ponteiro Utilização

Leia mais

Aula 25: Alocação Dinâmica

Aula 25: Alocação Dinâmica Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização de ponteiros

Leia mais

Aula 08: Funções (Parte II)

Aula 08: Funções (Parte II) Aula 08: Funções (Parte II) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Introdução a Funções Aula prática

Leia mais

Aula 03: Introdução a C

Aula 03: Introdução a C Aula 03: Introdução a C Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior O que é um computador Organização de um

Leia mais

Aula 27: Estruturas heterogêneas e alocação dinâmica

Aula 27: Estruturas heterogêneas e alocação dinâmica Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória

Leia mais

Aula 17: Funções (Parte III) e Introdução a Vetores

Aula 17: Funções (Parte III) e Introdução a Vetores Aula 17: Funções (Parte III) e Introdução a Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exemplos

Leia mais

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/54

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/54 BCC 201 - Introdução à Programação I Ponteiros Guillermo Cámara-Chávez UFOP 1/54 Ponteiros... I i n t main ( ) { i n t x ; x = 10 cout

Leia mais

Aula 25: Alocação Dinâmica

Aula 25: Alocação Dinâmica Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas de memórias heterogêneas

Leia mais

Aula 26: Estruturas heterogêneas

Aula 26: Estruturas heterogêneas Aula 26: Estruturas heterogêneas Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização

Leia mais

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/61

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/61 BCC 201 - Introdução à Programação I Ponteiros Guillermo Cámara-Chávez UFOP 1/61 Ponteiros... I i n t main ( ) { i n t x ; x = 10 p r i n t f ( " Conteudo de x: %d \n", x ) ; p r i n t f ( " Endereco de

Leia mais

Aula 28: Arquivos de texto

Aula 28: Arquivos de texto Aula 28: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides de Guillermo Cámara-Chávez Aulas anteriores Memória Ponteiro Utilização

Leia mais

Aula 20: Matrizes (Parte 2)

Aula 20: Matrizes (Parte 2) Aula 20: Matrizes (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Vetores Matrizes 2 / 15 Túlio Toffolo

Leia mais

Estrutura de dados 1. Ponteiros

Estrutura de dados 1. Ponteiros Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem

Leia mais

Estruturas (registros)

Estruturas (registros) BCC 201 - Introdução à Programação I Estruturas (registros) Guillermo Cámara-Chávez UFOP 1/44 Estruturas (struct) I Imaginemos que queremos ler as notas de 4 provas para um aluno e calcular a média do

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação

Leia mais

Ponteiros. Baseado nos slides do Prof. Mauro.

Ponteiros. Baseado nos slides do Prof. Mauro. Baseado nos slides do Prof. Mauro. A memória do computador é uma sequência de bytes, na qual endereçamos cada um sequencialmente. Como vimos, uma variável é uma região da memória que reservamos para armazenar

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.6. Ponteiros 3.6.1. Introdução 3.6.2. Uso

Leia mais

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Ponteiros e alocação dinâmica de memória Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Ponteiros Ponteiros e vetores Passagem por cópia e por referência Alocação

Leia mais

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exercícios da aula prática 2 Vetores 3 Exemplos

Leia mais

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória. Ponteiros e Arrays Ponteiros são fundamentais para a programação bem sucedida em C: Passagem de parâmetros por referência; Alocação dinâmica de memória; Aumentar a eficiência de certar rotinas. Essencialmente,

Leia mais

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário

Leia mais

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda Ponteiros e Alocação Dinâmica Prof. Péricles Miranda pbcm@cin.ufpe.br Memória A memória é formada por várias células. Cada célula contém um endereço e um valor. Memória Endereço Ao declararmos uma variável

Leia mais

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C.

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Ponteiro Definição de variável apontadora Aritmética de ponteiros Ponteiros e vetores Funções e passagem por referência Structs e ponteiros Alocação dinâmica de memória Objetivo Ponteiro Ponteiro Compreender

Leia mais

Linguagem de Programação C. Ponteiros

Linguagem de Programação C. Ponteiros Cristiano Lehrer Conceitos Básicos (1/3) char ch; RAM 100 101 102... 5000 5001 5002... ch ch = 'A'; RAM ch A 100 101 102... 5000 5001 5002... char *; RAM ch A 100 101 102... 5000 5001 5002... = &ch; ch

Leia mais

Aula 29: Arquivos binários

Aula 29: Arquivos binários Aula 29: Arquivos binários Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização de ponteiros

Leia mais

Programação II. Ponteiros. Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Ponteiros. Bruno Feijó Dept. de Informática, PUC-Rio Programação II Ponteiros Bruno Feijó Dept. de Informática, PUC-Rio Ponteiro Ponteiro (pointer) é uma variável que armazena o endereço de uma variável. p Sempre inicialize ponteiros! Ponteiros não inicializados

Leia mais

Linguagem C Ponteiros

Linguagem C Ponteiros Linguagem C Ponteiros Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Janeiro de 2018 Unidade 14 Linguagem C - Ponteiros 1/24 Identificadores e Endereços

Leia mais

Ponteiros, ponteiros e vetores e alocação dinâmica de memória

Ponteiros, ponteiros e vetores e alocação dinâmica de memória Ponteiros Ponteiros ou apontadores (em inglês pointers) são variáveis cujo conteúdo é um endereço. Já vimos que variáveis são posições na memória que podem conter um determinado valor dependendo de seu

Leia mais

Estruturas Homogêneas (Vetores)

Estruturas Homogêneas (Vetores) BCC 201 - Introdução à ProgramaçãoI Estruturas Homogêneas (Vetores) Guillermo Cámara-Chávez UFOP 1/59 Introdução I Como armazenar 3 notas? i n t main ( ) { f l o a t nota1, nota2, nota3 ; p r i n t f (

Leia mais

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO Ponteiros Definição Variável: área de memória que armazena dados de um certo tipo. Na memória, toda variável possui um endereço. Um Ponteiro é uma variável especial

Leia mais

Introdução à Computação MAC0110

Introdução à Computação MAC0110 Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 08 Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória

Leia mais

Estruturas II UFOP 1/35

Estruturas II UFOP 1/35 BCC 201 - Introdução à Programação I Estruturas II Guillermo Cámara-Chávez UFOP 1/35 Conceito de struct I Vetores e matrizes Estruturas de dados homegêneas Armazenam vários valores, mas todos de um mesmo

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Aula de Revisão: Variáveis e Atribuições Introdução Memória Principal: Vimos no curso anterior que a CPU usa a memória

Leia mais

Ponteiros. prof. Fabrício Olivetti de França

Ponteiros. prof. Fabrício Olivetti de França Ponteiros prof. Fabrício Olivetti de França Anteriormente em prog. estrut. Vimos que as variáveis representando arrays em C armazenam apenas um apontador para o endereço de memória contendo os valores

Leia mais

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Estruturas de Dados Revisão de Ponteiros Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros e Arranjos

Leia mais

ALOCAÇÃO DINÂMICA DE MEMÓRIA

ALOCAÇÃO DINÂMICA DE MEMÓRIA INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador

Leia mais

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique Vetores e Matrizes Prof. Fabrício Olivetti de França Charles Henrique Vetores Estáticos Um vetor em C é declarado como: tipo nome[tamanho]; 2 Vetores Estáticos /* vetor de nome v1 com 100 elementos do

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes? Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros

Leia mais

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência Introdução a Programação Ponteiros e Passagem de Argumentos por Referência Tópicos da Aula Hoje aprenderemos a manipular endereços de memória ou ponteiros Variáveis e Endereços Conceito de Ponteiro Operadores

Leia mais

Faculdade de Computação

Faculdade de Computação Faculdade de Computação Programação Procedimental 1 o Laboratório de Programação C Prof. Cláudio C. Rodrigues 1. Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Matrizes Alocação estática versus dinâmica Vetores bidimensionais matrizes Matrizes dinâmicas ATENÇÃO

Leia mais

Ponteiros e Tabelas. K&R: Capítulo 5

Ponteiros e Tabelas. K&R: Capítulo 5 Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

A sintaxe para se declarar uma variável do tipo ponteiro é dada por:

A sintaxe para se declarar uma variável do tipo ponteiro é dada por: Pense duas vezes e faça uma vez. Provérbio Chinês. PONTEIROS Um ponteiro nada mais é que uma variável capaz de armazenar um número hexadecimal que corresponde a um endereço de memória de outra variável.

Leia mais

C++ BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

C++ BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP C++ BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução I C++ é uma extensão a linguagem C Desenvolvida por Bjarne Stroustrup na década

Leia mais

INF 1620 P1-13/09/02 Questão 1 Nome:

INF 1620 P1-13/09/02 Questão 1 Nome: INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

Computação 2. Aula 7. Profª. Fabiany Ponteiros

Computação 2. Aula 7. Profª. Fabiany Ponteiros Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra

Leia mais

Ponteiros de Variáveis

Ponteiros de Variáveis Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem

Leia mais

Pausa para nossos comerciais

Pausa para nossos comerciais AULA 5 Pausa para nossos comerciais Plantão de dúvidas: Vinícius Horário: terças das 12h às 13h Onde: Rede Linux do IME, Bloco A, sala 127 Treinos para Maratona de Programação: Horário: quintas das 14h

Leia mais

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses 1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar

Leia mais

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira CMP1048 - Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira 1. Considere um programa em C++ que tenha duas variáveis declaradas

Leia mais

ANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa

ANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 04 Prof. Thomás da Costa thomascosta@aedu.com O que é: Matrizes São vetores que possuem duas ou mais dimensões para armazenar valores. Uma matriz de duas dimensões,

Leia mais

Introdução a Ponteiros e Vetores em C

Introdução a Ponteiros e Vetores em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Introdução a Ponteiros e Vetores em C Material preparado pela profa Silvana Maria Affonso de Lara e utilizado por

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 03 - Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória

Leia mais

NOTAS DE AULA 09 Estruturas e Ponteiros

NOTAS DE AULA 09 Estruturas e Ponteiros Estrutura de Dados 1 NOTAS DE AULA 09 Estruturas e Ponteiros 1. Estruturas de Dados A linguagem C/C++ fornece uma porção de tipos de variáveis: int, float, long, double, boolean, char... dentre outros.

Leia mais

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-2017 1 Sobre funções ( uma ideia ) 2 Qual função é mais eficiente? 3 1995 2015 4 Qual

Leia mais

Estruturas de Dados Homogêneas (Vetores e Matrizes) e Ponteiros em C

Estruturas de Dados Homogêneas (Vetores e Matrizes) e Ponteiros em C Estruturas de Dados Homogêneas (Vetores e Matrizes) e Ponteiros em C 2015/1 Programação Básica de Computadores (INF 09325) Archimedes Detoni www.inf.ufes.br/~archimedesdetoni archimedesdetoni@inf.ufes.br

Leia mais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 1 Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/1 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c

Leia mais

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto Programação I Ponteiros e alocação dinâmica de memória Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Ponteiros O ponteiro é um tipo de dado como int, char ou float; Variáveis

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo

Leia mais

C++ Orientado a Objetos

C++ Orientado a Objetos flavio@facom.ufu.br flaviosilva@computer.org a@comp org 1 Declaração As variáveis em C++ podem ser de duas diferentes naturezas Uma variável pode conter um VALOR ou um ENDEREÇO VALOR A declaração de uma

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 02: Alocação Dinâmica de Memória Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

LINGUAGEM C: PONTEIROS

LINGUAGEM C: PONTEIROS LINGUAGEM C: PONTEIROS Prof. André Backes DEFINIÇÃO Variável É um espaço reservado de memória usado para guardar um valor que pode ser modificado pelo programa; Ponteiro É um espaço reservado de memória

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4 Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para

Leia mais

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias s GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr.

Leia mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Ponteiros. Ponteiros. Ponteiros. Ponteiros. Ponteiros. Introdução a Programação. Profa. Roseli Romero

Ponteiros. Ponteiros. Ponteiros. Ponteiros. Ponteiros. Introdução a Programação. Profa. Roseli Romero ICMC USP 1.semestre/2009 Introdução a Programação e vetores em C Profa. Roseli Romero um é uma variável que contém o endereço um dado declaração: * indica que a variável é um tipo_dado *nome_; int x; int

Leia mais

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação Tipos de Dados, Variáveis e Entrada e Saída em C DCC 120 Laboratório de Programação Variáveis Uma variável representa um espaço na memória do computador para armazenar um determinado tipo de dado. Em C,

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Alocação Dinâmica de Memória Motivação: Nossos programas pré-fixavam o número de variáveis a serem utilizadas. No caso

Leia mais

Aula 10: Funções (Parte III)

Aula 10: Funções (Parte III) Aula 10: Funções (Parte III) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Baseado nos slides do Prof. Guillermo Cámara-Chávez Aulas anteriores Funções Ponteiros

Leia mais

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender a organização dos dados na memória Compreender o que são ponteiros Capacitar para implementar programas com

Leia mais

INTRODUÇÃO À LINGUAGEM C

INTRODUÇÃO À LINGUAGEM C INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2018) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos

Leia mais

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Disciplina de Programação de Computadores I Universidade Federal de Ouro

Leia mais

Introdução a Programação. Ponteiros para Estruturas, Outros Tipos de Estruturas

Introdução a Programação. Ponteiros para Estruturas, Outros Tipos de Estruturas Introdução a Programação Ponteiros para Estruturas, Outros Tipos de Estruturas Tópicos da Aula Hoje aprenderemos a trabalhar com ponteiros para estruturas Ponteiros para estruturas Alocação dinâmica de

Leia mais

Melhores momentos AULA 5

Melhores momentos AULA 5 Melhores momentos AULA 5 Registros e structs structs. aniversario struct { int dia; int mes; int ano; } aniversario ; dia mes ano Registros e structs Para não repetir struct... o tempo todo podemos denir

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

- Mapa de memória de um processo - Ponteiros

- Mapa de memória de um processo - Ponteiros 1 MCTA028 Programação Estruturada - Mapa de memória de um processo - Ponteiros Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-2018 2 Alocação de

Leia mais

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-2018 Sobre funções ( uma ideia ) Qual função é mais

Leia mais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Introdução O objetivo desta aula prática é exercitar comandos de entrada e saída simples

Leia mais

Vetores e matrizes. MCTA028 Programação Estruturada. Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti

Vetores e matrizes. MCTA028 Programação Estruturada. Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti 1 MCTA28 Programação Estruturada Vetores e matrizes Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-218 Armazenar 1 inteiros em um programa... Usando

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/63 Estrutura Básica de um programa C I < d i r e t i v a s do pre p r o

Leia mais

Conceitos Básicos de Programação

Conceitos Básicos de Programação BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de

Leia mais

3ra. Avaliação - Grupo A

3ra. Avaliação - Grupo A Universidade Federal de Ouro Preto - UFOP Disciplina: BCC 201 - Introdução à Programação Professor: Guillermo Cámara-Chávez Aluno: No. A cola não será tolerada. Se alguém for pego colando, será reprovado

Leia mais

a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1)

a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1) INF 620 P - 7/04/04 Questão a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: Ou seja: π 4 * + 3 π 5 7 + 9 i ( ) 4 * n i= 0 2 * i + + K Esta função

Leia mais

Algoritmos e Estruturas de Dados I (AEDI) Introdução - AEDI. Prof. Paulo Henrique Pisani

Algoritmos e Estruturas de Dados I (AEDI) Introdução - AEDI. Prof. Paulo Henrique Pisani Algoritmos e Estruturas de Dados I (AEDI) Introdução - AEDI Prof. Paulo Henrique Pisani fevereiro/2019 Algoritmos e Estruturas de Dados I Ementa: Breve introdução à linguagem C; Noções básicas de análise

Leia mais

Aula 24 Ponteiros, vetores e structs

Aula 24 Ponteiros, vetores e structs Programação Aula 24 Ponteiros, vetores e structs Prof. Laura Silva de Assis Engenharia de Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis

Leia mais

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os

Leia mais

Estruturas Dinâmicas - Ponteiros Parte I

Estruturas Dinâmicas - Ponteiros Parte I SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Estruturas Dinâmicas - Ponteiros Parte I Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br

Leia mais

#include<iostream> using namespace std; main(){ int i=20; int *p; p=&i; cout << "Valor da variável: " << *p << endl; }

#include<iostream> using namespace std; main(){ int i=20; int *p; p=&i; cout << Valor da variável:  << *p << endl; } Aula 2 Ponteiros Ponteiros são um tipo de variável que aponta para outra, ou seja, um ponteiro guarda o endereço de memória de uma variável. No exemplo abaixo, observe que: (i) a variável p é do tipo ponteiro

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Cap. 2 Expressões na linguagem C

Cap. 2 Expressões na linguagem C Programação de Computadores II Cap. 2 Expressões na linguagem C Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (24) Slides adaptados dos originais

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros

Leia mais

Revisão C++ - Parte 1

Revisão C++ - Parte 1 Revisão C++ - Parte 1 Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes 5/3/2010 Objetivo da Aula 5/3/2010 5/3/2010 OBJETIVO DA AULA Revisar os principais comandos

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 8 Matrizes como argumento de funções O nome de uma matriz (sem os colchetes) representa o endereço onde a matriz está armazenada. Ao passar o

Leia mais

Linguagem C. Ponteiros. Alex Vidigal Bastos.

Linguagem C. Ponteiros. Alex Vidigal Bastos. Linguagem C Ponteiros Alex Vidigal Bastos alexvbh@gmail.com Ponteiros Ponteiros são variáveis que contém endereços. Estas variáveis apontam para algum determinado endereço da memória. Em geral, o ponteiro

Leia mais