BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI...
Transcript of BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI...
![Page 1: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/1.jpg)
1/61
BCC 201 - Introducao a Programacao I
Ponteiros
Guillermo Camara-ChavezUFOP
![Page 2: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/2.jpg)
2/61
Ponteiros ... I
i n t main ( ){
i n t x ;x = 10p r i n t f ("Conteudo de x: %d \n" , x ) ;p r i n t f ("Endereco de x: %p \n" , &x ) ;r e t u r n 0 ;
}
![Page 3: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/3.jpg)
3/61
Ponteiros ... II
![Page 4: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/4.jpg)
4/61
Ponteiros ... III
![Page 5: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/5.jpg)
5/61
Ponteiros ... IV
![Page 6: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/6.jpg)
6/61
Ponteiros ... V
![Page 7: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/7.jpg)
7/61
Ponteiros ... VI
![Page 8: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/8.jpg)
8/61
Ponteiros ... VII
![Page 9: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/9.jpg)
9/61
Ponteiros ... VIII
![Page 10: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/10.jpg)
10/61
Ponteiros ... IX
![Page 11: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/11.jpg)
11/61
Ponteiros ... X
![Page 12: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/12.jpg)
12/61
Ponteiros ... XI
![Page 13: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/13.jpg)
13/61
Ponteiros ... XII
![Page 14: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/14.jpg)
14/61
Ponteiros ... XIII
![Page 15: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/15.jpg)
15/61
Ponteiros ... XIV
![Page 16: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/16.jpg)
16/61
Ponteiros ... XV
![Page 17: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/17.jpg)
17/61
Ponteiros ... XVI
![Page 18: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/18.jpg)
18/61
Ponteiros ... XVII
![Page 19: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/19.jpg)
19/61
Ponteiros ... XVIII
![Page 20: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/20.jpg)
20/61
Aritmetica de Ponteiros I
I Uma variavel do tipo ponteiro esta sempre associada a umtipo
I Um ponteiro para um dado tipo t endereca o numero de bytesque esse tipo t ocupa na memoria, i.e., endereca sizeof(t)bytes.
I Se um ponteiro para uma variavel do tipo t for incrementadaatraves do operador ++, automaticamente este ponteiropassara a ter o valor x + sizeof(t)
![Page 21: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/21.jpg)
21/61
Aritmetica de Ponteiros II
![Page 22: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/22.jpg)
22/61
Aritmetica de Ponteiros III
![Page 23: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/23.jpg)
23/61
Aritmetica de Ponteiros IV
![Page 24: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/24.jpg)
24/61
Aritmetica de Ponteiros V
![Page 25: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/25.jpg)
25/61
Aritmetica de Ponteiros VI
![Page 26: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/26.jpg)
26/61
Aritmetica de Ponteiros VII
![Page 27: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/27.jpg)
27/61
Aritmetica de Ponteiros VIII
![Page 28: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/28.jpg)
28/61
Aritmetica de Ponteiros IX
![Page 29: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/29.jpg)
29/61
Aritmetica de Ponteiros X
![Page 30: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/30.jpg)
30/61
Aritmetica de Ponteiros XI
![Page 31: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/31.jpg)
31/61
Relacao entre ponteiros e vetores I
I A aritmetica de ponteiros e particularmente importante paramanipulacao de vetores e strings.
I Quando declaramos um vetor seus elementos sao alocados emespacos de memoria vizinhos.
I O nome de um vetor equivale ao endereco do primeiroelemento dele (se um vetor possui nome v , entao, v equivalea v [0].
![Page 32: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/32.jpg)
32/61
Relacao entre ponteiros e vetores II
![Page 33: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/33.jpg)
33/61
Vetores I
![Page 34: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/34.jpg)
34/61
Alocacao Dinamica de Memoria I
![Page 35: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/35.jpg)
35/61
Alocacao Dinamica de Memoria II
![Page 36: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/36.jpg)
36/61
Alocacao Dinamica de Memoria III
![Page 37: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/37.jpg)
37/61
Alocacao Dinamica de Memoria IV
![Page 38: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/38.jpg)
38/61
Alocacao Dinamica de Memoria V
Comando Liberacao Memoria
AlocacaoEstati-ca deMemoria
i n t v [ 3 ] ;
Reserva 3 espacos de 4bytes em v
O propio programa ao serencerrado, se encarregade liberar a memoria alo-cada.
AlocacaoDinamicadeMemoria
v = ( i n t ∗) m a l l o c( n∗ s i z e o f ( i n t ) ) ;
Reserva n espacos de 4bytes em v
Se nao for usar mais avariavel v , entao, e ne-cessario empregar o co-mando free().
![Page 39: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/39.jpg)
39/61
Relacao entre ponteiros, vetores e matrizes I
I Assim como e possıvel alocar memoria em tempo de execucaopara armazenar um vetor, tambem, e possıvel construir umamatriz M com m linhas e n colunas. Os comandos para taltarefa sao como dados a seguir:
i n t main ( ){
c h a r ∗∗M,i n t m, n , i ;p r i n t f ("Entre com m e n" ) ;s c a n f (" %d %d" , &m, &n ) ;// Vetor de enderecos (os elementos sao do tipo char*)M = ( c h a r ∗∗) c a l l o c (m, s i z e o f ( c h a r ∗ ) ) ;// Cria para cada endereco um vetor de elementos intf o r ( i = 0 ; i < m; i ++)
M[ i ] = ( c h a r ∗) c a l l o c ( n , s i z e o f ( c h a r ) )r e t u r n 0 ;
}
![Page 40: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/40.jpg)
40/61
Relacao entre ponteiros, vetores e matrizes II
I Vejamos um exemplo:
M = ( c h a r ∗∗) c a l l o c ( 3 , s i z e o f ( c h a r ∗ ) ) ;
![Page 41: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/41.jpg)
41/61
Relacao entre ponteiros, vetores e matrizes III
![Page 42: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/42.jpg)
42/61
Relacao entre ponteiros, vetores e matrizes IV
![Page 43: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/43.jpg)
43/61
Relacao entre ponteiros, vetores e matrizes V
![Page 44: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/44.jpg)
44/61
Relacao entre ponteiros, vetores e matrizes VI
![Page 45: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/45.jpg)
45/61
Liberacao de memoria I
![Page 46: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/46.jpg)
46/61
Liberacao de memoria II
![Page 47: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/47.jpg)
47/61
Liberacao de memoria III
![Page 48: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/48.jpg)
48/61
Liberacao de memoria IV
![Page 49: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/49.jpg)
49/61
Exercicios I
Inserir n notas de um total de m alunos
![Page 50: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/50.jpg)
50/61
Exercicios II#i n c l u d e <s t d i o . h>#i n c l u d e < s t d l i b . h>i n t main ( ){ i n t i , j , m, n ; f l o a t ∗∗M = NULL ;
p r i n t f ("Entre com m e n: " ) ;s c a n f (" %d %d" , &m, &n ) ;// Aloca m espacos tipo float *.M = ( f l o a t ∗∗) c a l l o c (m, s i z e o f ( f l o a t ∗ ) ) ;// Aloca n espacos tipo float, cada M[i].f o r ( i = 0 ; i < m; i ++)
M[ i ] = ( f l o a t ∗) c a l l o c ( n , s i z e o f ( f l o a t ) ) ;// Preenchendo a matriz M usando ındices: M[i][j].f o r ( i =0; i < m; i ++){ p r i n t f ("Aluno %d: " , i +1);
f o r ( j =0; j < n ; j ++){ p r i n t f (" Nota %d:" , j +1);
s c a n f (" %f" , &M[ i ] [ j ] ) ;}
}. . .
}
![Page 51: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/51.jpg)
51/61
Exercicios III
. . .// Impressao dos elementos de M, empregando ponteiros.f o r ( i =0; i < m; i ++){ f o r ( j =0; j < n ; j ++)
p r i n t f (" [ %4f] " , M[ i ] [ j ] ) ;p r i n t f (" \n " ) ;
}// Liberacao de memoria.// Liberando m vetores de tamanho n.i f (M != NULL){
f o r ( i =0; i < m; i ++)i f (M[ i ] != NULL) f r e e (M[ i ] ) ;
// Liberando o vetor de ponteiros// de tamanho m.f r e e (M) ;
}r e t u r n 0 ;
}
![Page 52: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/52.jpg)
52/61
Ponteiros: Passagem por valor e por referencia I
Implementar uma funcao que encontre o maior de dois numeros
![Page 53: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/53.jpg)
53/61
Ponteiros: Passagem por valor e por referencia II
![Page 54: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/54.jpg)
54/61
Ponteiros: Passagem por valor e por referencia III
![Page 55: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/55.jpg)
55/61
Ponteiros: Passagem por valor e por referencia IV
![Page 56: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/56.jpg)
56/61
Ponteiros: Passagem por valor e por referencia V
Criar uma estrutura empregrado com os seguintes campos:
I nome
I salario
I sexo
Inserir n empregados (criar um vetor dinamico)
![Page 57: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/57.jpg)
57/61
Ponteiros: Passagem por valor e por referencia VI
t y p e d e f s t r u c t Pessoa{
c h a r nome [ 1 0 0 ] ;d o u b l e s a l a r i o ;c h a r s e x o ;
}PE ;
v o i d I n s e r e (PE∗ , i n t ) ;v o i d P r i n t (PE∗ , i n t ) ;i n t main ( ){
i n t n ;PE ∗ t r a b = NULL ;p r i n t f ("Quantidade de pessoas" ) ;s c a n f (" %d %*c" , &n ) ;t r a b = (PE∗) c a l l o c ( n , s i z e o f (PE ) ) ;I n s e r e ( t rab , n ) ;P r i n t ( t rab , n ) ;r e t u r n 0 ;
}
![Page 58: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/58.jpg)
58/61
Ponteiros: Passagem por valor e por referencia VII
v o i d I n s e r e (PE∗ vet , i n t n ){
i n t i , v a l o r e s ;f o r ( i = 0 ; i < n ; i ++){
p r i n t f ("Cadastro numero %d\n" , i +1);p r i n t f ("Insere nome: " ) ;f g e t s ( v e t [ i ] . nome , 100 , s t d i n ) ;do{
p r i n t f ("Insere salario: " ) ;v a l o r e s = s c a n f (" %lf" , &v e t [ i ] . s a l a r i o ) ;i f ( v a l o r e s == 0) s c a n f (" %*s" ) ;
}w h i l e ( v a l o r e s == 0 ) ;
p r i n t f ("Insere sexo: " ) ;s c a n f (" %c %*c" , &v e t [ i ] . s e x o ) ;//vet[i].sexo = getchar();
}}
![Page 59: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/59.jpg)
59/61
Ponteiros: Passagem por valor e por referencia VIII
v o i d P r i n t (PE∗ vet , i n t n ){
i n t i ;f o r ( i = 0 ; i < n ; i ++){
p r i n t f (" %s %lf %c \n" ,v e t [ i ] . nome , v e t [ i ] . s a l a r i o , v e t [ i ] . s e x o ) ;
}}
![Page 60: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/60.jpg)
60/61
Exercicios em Propostos I
1. Defina uma funcao que retorne a transposta de uma matriz xde dimensao lin × col .
i n t ∗∗ T r a n s p o s t a ( i n t ∗∗ M, i n t l i n , i n t c o l )
2. Elaborar um programa para calcular a meda aritmetica de doisvalores reais utilizando apenas variaveis do tipo ponteiro.
![Page 61: BCC 201 - Introdução à Programação I Ponteiros · 31/61 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocument.pub/reader033/viewer/2022052716/5c10904a09d3f2126b8cafe5/html5/thumbnails/61.jpg)
61/61
FIM