A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PONTEIROSPONTEIROS REVISÃO. Ponteiros Ponteiros representam endereços de memória Existem os ponteiros constantes e os ponteiros variáveis. Variáveis do.

Apresentações semelhantes


Apresentação em tema: "PONTEIROSPONTEIROS REVISÃO. Ponteiros Ponteiros representam endereços de memória Existem os ponteiros constantes e os ponteiros variáveis. Variáveis do."— Transcrição da apresentação:

1 PONTEIROSPONTEIROS REVISÃO

2 Ponteiros Ponteiros representam endereços de memória Existem os ponteiros constantes e os ponteiros variáveis. Variáveis do tipo ponteiro são variáveis capazes de armazenar endereços de outras variáveis

3 Ponteiros Do mesmo modo que declaramos variáveis para armazenar inteiros, podemos declarar variáveis que aos invés de armazenar inteiros armazenam endereços de memória em que há valores inteiros. Consideremos as declarações: int k; //k armazena valores inteiros int *pk; //pk armazena endereços de variáveis inteiras

4 Considere o seguinte programa int main() { int m, *pm; pm=&m; //pm recebe o endereço de m *pm=3; //o contéudo endereçado por pm receberá o valor 3 printf(“%d “, m); return 0; } O que será impresso?

5 Este programa está correto? int main () { float x, y, *z; x = 2.0; *z = 5.0; y = x + (*z); printf(“%.0f “, y); return 0; }

6 Dadas as declarações, quais atribuições são corretas? float x=3, *px; int a=1, *pa,*pb; a) pa = &a;f) pa = 10; b)px = pa;g) px = 0.75; c) pa = &x;h) x=a; d) *px =x;i) pb=pa; e) *pa=2.5;j) *pb=6;

7 Passando ponteiros para funções: void troca (int *a, int *b) { int aux; aux=*a; *a=*b; *b=aux; } int main( ) { int x=3, y=5; troca(&x, &y); printf(“x=%d y=%d\n”, x, y); return 0; }

8 Retornando a soma e o produto de 2 valores inteiros: void calcula (int a, int b, int *s, int *p) { *s= a + b; *p= a * b; } int main( ) { int x = 3, y = 4; int soma, prod; calcula(x, y, &soma, &prod); printf(“soma=%d produto=%d\n”, soma, prod); return 0; }

9 Ponteiros para vetores: int main( ) { int vet[4] = {10, 12, 30, 45}; int *pv; pv=vet; // ou pv=&vet[0]; for(int i=0; i < 4; i++) printf(“%d “, vet[i]);// ou printf(“%d “, pv[i]); printf(“\n\n”); //percurso usando o ponteiro para o vetor (pv) for(int i=0; i < 4; i++) printf(“%d “, *pv++); // printf(“%d “,(*pv)++);? return 0; }

10 Ponteiros para strings: main( ) { char frase[] = “ABRACADABRA”; char *p; int i, n=0; //percurso usando o ponteiro para a string (p) for(p=frase; *p !=‘\0’; p++) if (*p==‘A’) n++; printf(“Letras A = %d\n“, n); //percurso usando o vetor frase for(i=0, n = 0; frase[i]!=‘\0’; i++) if (frase!=‘A’) n++; printf(“Consoantes =%d “, n); }


Carregar ppt "PONTEIROSPONTEIROS REVISÃO. Ponteiros Ponteiros representam endereços de memória Existem os ponteiros constantes e os ponteiros variáveis. Variáveis do."

Apresentações semelhantes


Anúncios Google