



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Apontadores ou ponteiros
Tipologia: Notas de estudo
1 / 7
Esta página não é visível na pré-visualização
Não perca as partes importantes!




1 # $# 6 % 7 1
&8 9 $ ## % 8 int *m, cont=100, q; m = &cont; : ; < % # $# ;< # ;< 9 ; < 3 1 ; 1 <
2 9 : $ ## # # $# 8 ; < # $# ;< q = *m; # ;< ;< ;< $ # )== 2 ; < 7 ; 1 # $ <
3 ! 1 ; < C2D E 6 9 2 8 $
3 # $# # 8 E # $# 1 # $# % E C # + D F main () { float x, y; int *p; p = &x; // p aponta para um float y = *p; // o valor atribuído para y não é o esperado } 7 ;< ;G< ( H
& 8 ## 8 3
1 # 8 main() { int x; int *p1, *p2; p1 = &x; p2 = p1; // agora p1 e p2 apontam para x printf(“%p”, p2); // escreve o endereço de x e não o seu valor }
8 1 ;)< > # >=== 3% 8 ; < ) $ >==> >==) # ;)< %8 I 8 # % %8 1 & # & # # E 1 %8 # 6 1 !# 1 3 8 < ;)< ; ;)< $ 3 1 E
: !# 8 8 ;< ;< #$ if (p < q) printf(“p aponta para uma memória mais baixa que q \n”);
!
!# $ 8 E$ # 3 8 int *p = NULL; // Macro que define um ponteiro nulo char *p = “alo mundo”; int x = 10; int *p = &x;
char str[80], *p1; p1 = str; 3 ;)< ; < ; < str[4] *(p1+4) ## 1 # #J @ K J @ ;)< ;)< ; < 6 1 1 !
8 C ! LD $ 8 # 8 # ; < 8 & # # ! // Indexa s como uma matriz void puts (char *s) { register int t; for (t=0; s[t]; ++t) putchar(s[t]); }
// Acessa s como um ponteiro void putstr (char s) { while (s) putchar(*s++); // “ *s++; ” é equivalente a “ *s; s++; ” }
1 3 ; < E )= int *x[10]; 1 # $# E ;#< #J # x[2] = &var; # ;#< #J *x[2];
"
' $ + E ! 8 1 ;8< void display_array (int *q[]) { int t; for (t=0; t<10; t++) printf (“%d ”, *q[t]); } 7 1 ;< ;< $ ;< % &
B 3 !# 8 1 H % void syntax_error (int num) { static char *err[] = { “Arquivo não pode ser aberto \n”, “Erro de leitura \n”, “Erro de escrita \n”, “Falha da mídia \n” }; printf(“%s”, err[num]); }
7 8 ;< J 1 # ; CD< ; G8M< E #$ 8 H 8 # ) ;& < # > ;& < 8 E ;#< C @@D ,'- ./0
void *malloc(size_t <número_de_bytes>);
$
#include <stdio.h> #include <stdlib.h>
int pwr(int a, int b); void table(int p[4][10]); void show(int p[4][10]);
void main(void) { int p; p = (int ) malloc(40sizeof(int)); if(!p) { printf("Falha na solicitação de memória. \n"); exit(1); } // aqui, p ‚ é simplesmente um ponteiro table(p); show(p); } // Constrói a tabela de potências void table(int p[4][10]) { // agora o compilador tem uma matriz para trabalhar register int i, j; for(j=1; j<11; j++) for(i=1; i<5; i++) p[i-1][j-1] = pwr(j, i); } // Exibe a tabela de potências inteiras void show(int p[4][10]) { // agora o compilador tem uma matriz para trabalhar register int i, j; printf("%10s %10s %10s %10s\n", "N", "N^2", "N^3", "N^4"); for(j=1; j<11; j++) { for(i=1; i<5; i++) printf("%10d ", p[i-1][j-1]); printf("\n"); } } // Eleva um inteiro a uma potência especificada pwr(int a, int b) { register int t=1; for(; b; b--) t = ta; return t; }