Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
7)
Sumário:
É uma variável que contém um endereço de memória
•Entender o Conceito de ponteiros
como valor. O ponteiro faz uma referência indireta
•Chamadas por referência a um valor.
•Relacionamentos entre ponteiros e arrays
•Aritmética de ponteiros
iptr i
● 3000 4
1
Exemplo (Cap.7) Chamada de Função por Referência (Cap.7)
# include <stdio.h>
main( ) - Caso dos ARRAYS: é passado a função o
{ endereço de início do array.
int a, * aptr;
a = 7;
aptr = &a;
- Caso dos ESCALARES: é passado o valor da
printf (“o endereço de a é %p\n” variável.
“o valor de aptr é %\n\n”, &a, aptr);
printf (“o valor de a é %d\n\n” - PONTEIRO: permite que seja passado o endereço
“o valor de *aptr é %d\n\n”, a, *aptr); onde a variável esta armazenada.
}
/* Eleva uma variável ao cubo usando chamada por valor */ # include <stdio.h>
#include <studio.h> void cuboporreferência(int *);
int cuboporvalor (int); main
main ( ) {
{ int numero = 5
int numero = 5 printf(“o valor original do número é %d\n”, número); (5)
printf(“o valor original do numero é %d\m”,numero); (5) cuboporreferência (&numero);
numero = cuboporvalor (numero); printf (“o novo valor do numero é %d\n”, numero); (125)
printf (“o novo valor do numero é %d\m”, numero); (125) return 0
return 0; }
} void cuboporreferência (int *nptr)
int cuboporvalor (int n) {
{ *nptr = *nptr * *nptr * *nptr
return n*n*n; }
}
2
Programa Exemplo (Cap.4) Operador Sizeof (Cap.7)
#include <stdio.h> (pg. 233 – estudar)
main( )
{
Determina o tamanho de um elemento em bytes.
int i, offset, b[ ] = {10, 20, 30, 40};
int – bptr = b; #include <stdio.h>
printf (“array b impresso com:\n” main( )
“notação de subscrito de array\n”);
for (i = 0; i<=3; i++) Int i
printf (“notação ponteiro/offset”\n); {
for (offset = 0; offset <=3; offset++)
printf (“*(b+%d) = %d\n”, offset, - (b + offset)); Printf (“sizeof(i) = %d\n”, sizeof(i) );
printf (“notação subscrito de ponteiro\n”);
}
for (i = 0; i <= 3; i ++)
printf (“bptr [%d] = %d\n”, i, bptr[i]);
printf (“notação ponteiro/offset\n”);
for (offset = 0; offset <=3; offset++)
printf (“+(bptr+%d) = %d\n”, offset, *(pbtr+offset));
return 0;
}
Um ponteiro para função guarda o endereço inicial da #include <stdio.h> (pg. 233 – estudar)
main( )
posição onde a função esta armazenada. {
int i, offset, b[ ] = {10, 20, 30, 40};
int – bptr = b;
ANALOGIA: printf (“array b impresso com:\n”
“notação de subscrito de array\n”);
..................................................
.......................................
Nome do Array → endereço inicial onde esta armazenado. ..........................