Ponteiros em Linguagem C
Ponteiros em Linguagem C O Que é uma variável? É uma área da memória do computador onde é armazenado um valor…. Exemplo 1: int a = 1;
Ponteiros em Linguagem C O Que é uma variável? É uma área da memória do computador onde é armazenado um valor…. Exemplo 1: int a = 1; Variável Posição a 1000
Ponteiros em Linguagem C O Que é uma variável? É uma área da memória do computador onde é armazenado um valor…. Exemplo 1: int a = 1; 1000 1001 1002 1003 Variável Posição a 1000 1
Ponteiros em Linguagem C O Que É Um Ponteiro? É uma variável que armazena o endereço na memória do computador onde está outra variável….
Ponteiros em Linguagem C O Que É Um Ponteiro? É uma variável que armazena o endereço na memória do computador onde está outra variável…. Operadores relacionados a Ponteiros: *(asterisco): informa que uma variável irá armazenar o endereço de outra variável; ou: informa ao computador que vc deseja o valor que está no endereço armazenado; &(e comercial): retorna o endereço de uma variável;
Ponteiros em Linguagem C Operadores relacionados a Ponteiros: *(asterisco): informa que uma variável irá armazenar o endereço de outra variável; ou: informa ao computador que vc deseja o valor que está no endereço armazenado; &(e comercial): retorna o endereço de uma variável; Exemplo 2: int a = 1; int *pt_a; pt_a = &a; printf(“%d”, *pt_a);
Ponteiros em Linguagem C Repetindo: operador * declara-se com * int *x acessa-se (alterar, modificar, ler) também com * *x = 10; // atribui o valor 10 ao local apontado pelo ponteiro ‘x’ printf(“%d”, *x); // imprime o valor armazenado no local apontado por ‘x’ observação: strings e vetores funcionam de forma diferente: um vetor ou string é um ponteiro por definição operador & acessa (alterar, modificar, ler) o endereço de uma variável (que é um ponteiro)
Ponteiros em Linguagem C Exemplo: int a = 1;1000 1001 1002 1003 1 Variável Posição a 1000
Ponteiros em Linguagem C Exemplo: int a = 1;1000 1001 1002 1003 int *pt_a; 1 Variável Posição a 1000 pt_a 1001
Ponteiros em Linguagem C Exemplo: int a = 1;1000 1001 1002 1003 int *pt_a; pt_a = &a; 1 1000 Variável Posição a 1000 pt_a 1001
Ponteiros em Linguagem C Onde usar isto??? Funções! Alocação Dinâmica Não sei o tamanho que o vetor precisa ter….! Não sei o tamanho que cada string precisa ter… Não sei o tamanho que a matriz precisa ter…
Ponteiros em Linguagem C- Exemplo #include <stdio.h> int A[10]; int i,j,n; int main() { for(i=0;i<n;i++) scanf(“%d”,&A[i]); for(j=0;j<n;j++) for(i=0;i<n-1;i++) if(A[i]>A[i+1]) troca(A[i],A[i+1]); for(i=0;i<n;i++) printf (“%d\n”,A[i]); }
Ponteiros em Linguagem C- Exemplo void troca(int a, int b) { int temp; temp = a; a = b; b = temp; }
Ponteiros em Linguagem C Vai funcionar?????
Ponteiros em Linguagem C Vai funcionar????? NÃOOOOOOO!!!!
Ponteiros em Linguagem C Vai funcionar????? NÃOOOOOOO!!!! Por quê???????
Ponteiros em Linguagem C- Exemplo Corrigido #include <stdio.h> int A[10]; int i,j,n; int main() { for(i=0;i<n;i++) scanf(“%d”,&A[i]); for(j=0;j<n;j++) for(i=0;i<n-1;i++) if(A[i]>A[i+1]) troca(&A[i],&A[i+1]); for(i=0;i<n;i++) printf (“%d\n”,A[i]); }
Ponteiros em Linguagem C- Exemplo Corrigido void troca(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; }