SlideShare uma empresa Scribd logo
1 de 20
Linguagem C Ponteiros Regis Pires Magalhães [email_address]
Ponteiros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Declaração de Ponteiros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo #include   <stdio.h> int  main() { int  x = 5; int  *px; px = &x; printf ( &quot;x: %d&quot; , x); printf ( &quot;px: %d&quot; , *px); return  0; }
Exemplo #include   <stdio.h> int  main() { int  x = 5; int  *px; px = &x; printf ( &quot;x: %d&quot; , x); printf ( &quot;px: %d&quot; , *px); x = 7; printf ( &quot;x: %d&quot; , x); printf ( &quot;px: %d&quot; , *px); *px = 3; printf ( &quot;x: %d&quot; , x); printf ( &quot;px: %d&quot; , *px); return  0; }
Ponteiro para char #include   <stdio.h> int  strtamanho( char  *str) { int  tamanho = 0; while  (*str) { tamanho++; str++; } return  tamanho; } int  main() { char  palavra[100]; printf ( &quot;Digite uma palavra: &quot; ); gets (palavra); printf ( &quot;O tamanho e: %d&quot; , strtamanho(palavra)); return  0; }
Ponteiro para char #include   <stdio.h> char  *strupper( char  *str) { char  *inicio; inicio = str; while  (*str) { *str = toupper(*str);  str++; } return  inicio; } int  main() { char  palavra[100]; printf ( &quot;Digite uma palavra: &quot; ); gets (palavra); printf ( &quot;Em caixa alta: %s&quot; , strupper(palavra)); return  0; }
Alocação Dinâmica ,[object Object],[object Object],[object Object],[object Object],[object Object]
Alocação dinâmica de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Alocação dinâmica de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Alocação dinâmica de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Liberação dinâmica de memória ,[object Object],[object Object]
Ponteiros para estruturas #include   <stdio.h> #include   <string.h> #include   <stdlib.h> struct  pessoa { char   nome [50]; int   idade ; }; typedef   struct  pessoa  Pessoa ; int  main() { Pessoa  *p = malloc( sizeof ( Pessoa )); strcpy (p-> nome , &quot;Regis&quot; ); p-> idade  = 18; printf ( &quot;Nome: %s - Idade: %d&quot; , p-> nome , p-> idade ); free(p); return  0; }
Exemplo #include   <stdio.h> #include   <string.h> #include   <stdlib.h> struct  pessoa { char   nome [50]; int   idade ; }; typedef   struct  pessoa  Pessoa ; int  main() { Pessoa  *p = malloc(2 *  sizeof ( Pessoa )); Pessoa  *inicio = p; strcpy (p-> nome , &quot;Regis&quot; ); p-> idade  = 18; p++; strcpy (p-> nome , &quot;Maria&quot; ); p-> idade  = 25; p = inicio; printf ( &quot;Nome: %s - Idade: %d&quot; , p-> nome , p-> idade ); p++; printf ( &quot;Nome: %s - Idade: %d&quot; , p-> nome , p-> idade ); free(inicio); return  0; }
Exemplo #include   <stdio.h> #include   <string.h> #include   <stdlib.h> struct  pessoa { char   nome [50]; int   idade ; }; typedef   struct  pessoa  Pessoa ; int  main() { Pessoa  *p = malloc(2 *  sizeof ( Pessoa )); strcpy (p[0]. nome , &quot;Regis&quot; ); p[0]. idade  = 18; strcpy (p[1]. nome , &quot;Maria&quot; ); p[1]. idade  = 25; printf ( &quot;Nome: %s - Idade: %d&quot; , p[0]. nome , p[0]. idade ); printf ( &quot;Nome: %s - Idade: %d&quot; , p[1]. nome , p[1]. idade ); free(p); return  0; }
Passagem parâmetros por referência ,[object Object]
Passagem parâmetros por referência #include   <stdio.h> void  troca( int  *x,  int  *y) { int  aux = *x; *x = *y; *y = aux; } int  main() { int  n1, n2; printf ( &quot;Digite n1: &quot; ); scanf ( &quot;%d&quot; , &n1); printf ( &quot;Digite n2: &quot; ); scanf ( &quot;%d&quot; , &n2); troca(&n1, &n2); printf ( &quot;n1 eh: %d&quot; , n1); printf ( &quot;n2 eh: %d&quot; , n2); return  0; }
Lista Encadeada Simples
Lista Encadeada Simples
Lista Encadeada Simples #include   <stdio.h> #include   <stdlib.h> typedef   struct  pessoa  Pessoa ; struct  pessoa { char   nome [50]; int   idade ; Pessoa  * proximo ; }; int  main() { Pessoa  *pAtual, *pInicio = NULL, *pAnterior = NULL; char  continua; do  { pAtual = malloc( sizeof ( Pessoa )); printf ( &quot;Digite um nome: &quot; ); gets (pAtual-> nome ); printf ( &quot;Digite a idade: &quot; ); scanf ( &quot;%d&quot; , &pAtual-> idade );  getchar (); if  (pInicio == NULL) { pInicio = pAtual; }  if  (pAnterior != NULL) { pAnterior-> proximo  = pAtual; } pAnterior = pAtual; printf ( &quot;Insere mais (S/N)? &quot; ); continua =  getchar ();  getchar (); }  while  (toupper(continua) !=  'N' ); pAtual = pInicio; while  (pAtual != NULL) { printf ( &quot;Nome: %s - Idade: %d&quot; , pAtual-> nome , pAtual-> idade ); pAtual = pAtual-> proximo ; } }

Mais conteúdo relacionado

Mais procurados

Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
Armando Daniel
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
Sidney Roberto
 

Mais procurados (20)

Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Estrutura de Dados - Registros
Estrutura de Dados - RegistrosEstrutura de Dados - Registros
Estrutura de Dados - Registros
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Estrutura de Dados - Ponteiros
Estrutura de Dados - PonteirosEstrutura de Dados - Ponteiros
Estrutura de Dados - Ponteiros
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Uml
UmlUml
Uml
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas Estáticas
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 

Destaque

Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De Repeticao
Regis Magalhães
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
Regis Magalhães
 
Linguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesLinguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E Matrizes
Regis Magalhães
 
Linguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoLinguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De Decisao
Regis Magalhães
 
Linguagem C 08 Definicao De Tipos
Linguagem C 08 Definicao De TiposLinguagem C 08 Definicao De Tipos
Linguagem C 08 Definicao De Tipos
Regis Magalhães
 
Brief introduction to the c programming language
Brief introduction to the c programming languageBrief introduction to the c programming language
Brief introduction to the c programming language
Kumar Gaurav
 
Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)
111111119
 

Destaque (20)

Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em C
 
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
 
Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *
 
Linguagem C 02 String
Linguagem C 02 StringLinguagem C 02 String
Linguagem C 02 String
 
Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De Repeticao
 
Listas em C
Listas em CListas em C
Listas em C
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Linguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesLinguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E Matrizes
 
Linguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoLinguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De Decisao
 
Linguagem C 08 Definicao De Tipos
Linguagem C 08 Definicao De TiposLinguagem C 08 Definicao De Tipos
Linguagem C 08 Definicao De Tipos
 
Linguagem C 10 Arquivos
Linguagem C 10 ArquivosLinguagem C 10 Arquivos
Linguagem C 10 Arquivos
 
Introduction C Programming
Introduction C ProgrammingIntroduction C Programming
Introduction C Programming
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Brief introduction to the c programming language
Brief introduction to the c programming languageBrief introduction to the c programming language
Brief introduction to the c programming language
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)
 

Semelhante a Linguagem C 09 Ponteiros

C++ Standard Template Library
C++ Standard Template LibraryC++ Standard Template Library
C++ Standard Template Library
Duda Dornelles
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
Ricardo Bolanho
 
Biblioteca strings profª ms
Biblioteca strings profª msBiblioteca strings profª ms
Biblioteca strings profª ms
Joelsa Soares
 
Mini Curso de Python para Coding Dojo
Mini Curso de Python para Coding DojoMini Curso de Python para Coding Dojo
Mini Curso de Python para Coding Dojo
Fabricio NErdmann
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
Bianca Dantas
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
Regis Magalhães
 

Semelhante a Linguagem C 09 Ponteiros (20)

C++ Standard Template Library
C++ Standard Template LibraryC++ Standard Template Library
C++ Standard Template Library
 
Função malloc
Função mallocFunção malloc
Função malloc
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando C
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Ling c
Ling cLing c
Ling c
 
Java4
Java4Java4
Java4
 
Workshop Python.1
Workshop Python.1Workshop Python.1
Workshop Python.1
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdf
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Ed1
Ed1Ed1
Ed1
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
 
Biblioteca strings profª ms
Biblioteca strings profª msBiblioteca strings profª ms
Biblioteca strings profª ms
 
Mini Curso de Python para Coding Dojo
Mini Curso de Python para Coding DojoMini Curso de Python para Coding Dojo
Mini Curso de Python para Coding Dojo
 
Estruturas
EstruturasEstruturas
Estruturas
 
Aula 7 pc - estrutura
Aula 7   pc - estruturaAula 7   pc - estrutura
Aula 7 pc - estrutura
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
 

Mais de Regis Magalhães

Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
Regis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
Regis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
Regis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
Regis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
Regis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
Regis Magalhães
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
Regis Magalhães
 

Mais de Regis Magalhães (20)

High Dimensional Data
High Dimensional DataHigh Dimensional Data
High Dimensional Data
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 09-php-crud-mvc
Prog web 09-php-crud-mvcProg web 09-php-crud-mvc
Prog web 09-php-crud-mvc
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
Prog web 04-php-gd
Prog web 04-php-gdProg web 04-php-gd
Prog web 04-php-gd
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
 

Linguagem C 09 Ponteiros

  • 1. Linguagem C Ponteiros Regis Pires Magalhães [email_address]
  • 2.
  • 3.
  • 4. Exemplo #include <stdio.h> int main() { int x = 5; int *px; px = &x; printf ( &quot;x: %d&quot; , x); printf ( &quot;px: %d&quot; , *px); return 0; }
  • 5. Exemplo #include <stdio.h> int main() { int x = 5; int *px; px = &x; printf ( &quot;x: %d&quot; , x); printf ( &quot;px: %d&quot; , *px); x = 7; printf ( &quot;x: %d&quot; , x); printf ( &quot;px: %d&quot; , *px); *px = 3; printf ( &quot;x: %d&quot; , x); printf ( &quot;px: %d&quot; , *px); return 0; }
  • 6. Ponteiro para char #include <stdio.h> int strtamanho( char *str) { int tamanho = 0; while (*str) { tamanho++; str++; } return tamanho; } int main() { char palavra[100]; printf ( &quot;Digite uma palavra: &quot; ); gets (palavra); printf ( &quot;O tamanho e: %d&quot; , strtamanho(palavra)); return 0; }
  • 7. Ponteiro para char #include <stdio.h> char *strupper( char *str) { char *inicio; inicio = str; while (*str) { *str = toupper(*str); str++; } return inicio; } int main() { char palavra[100]; printf ( &quot;Digite uma palavra: &quot; ); gets (palavra); printf ( &quot;Em caixa alta: %s&quot; , strupper(palavra)); return 0; }
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Ponteiros para estruturas #include <stdio.h> #include <string.h> #include <stdlib.h> struct pessoa { char nome [50]; int idade ; }; typedef struct pessoa Pessoa ; int main() { Pessoa *p = malloc( sizeof ( Pessoa )); strcpy (p-> nome , &quot;Regis&quot; ); p-> idade = 18; printf ( &quot;Nome: %s - Idade: %d&quot; , p-> nome , p-> idade ); free(p); return 0; }
  • 14. Exemplo #include <stdio.h> #include <string.h> #include <stdlib.h> struct pessoa { char nome [50]; int idade ; }; typedef struct pessoa Pessoa ; int main() { Pessoa *p = malloc(2 * sizeof ( Pessoa )); Pessoa *inicio = p; strcpy (p-> nome , &quot;Regis&quot; ); p-> idade = 18; p++; strcpy (p-> nome , &quot;Maria&quot; ); p-> idade = 25; p = inicio; printf ( &quot;Nome: %s - Idade: %d&quot; , p-> nome , p-> idade ); p++; printf ( &quot;Nome: %s - Idade: %d&quot; , p-> nome , p-> idade ); free(inicio); return 0; }
  • 15. Exemplo #include <stdio.h> #include <string.h> #include <stdlib.h> struct pessoa { char nome [50]; int idade ; }; typedef struct pessoa Pessoa ; int main() { Pessoa *p = malloc(2 * sizeof ( Pessoa )); strcpy (p[0]. nome , &quot;Regis&quot; ); p[0]. idade = 18; strcpy (p[1]. nome , &quot;Maria&quot; ); p[1]. idade = 25; printf ( &quot;Nome: %s - Idade: %d&quot; , p[0]. nome , p[0]. idade ); printf ( &quot;Nome: %s - Idade: %d&quot; , p[1]. nome , p[1]. idade ); free(p); return 0; }
  • 16.
  • 17. Passagem parâmetros por referência #include <stdio.h> void troca( int *x, int *y) { int aux = *x; *x = *y; *y = aux; } int main() { int n1, n2; printf ( &quot;Digite n1: &quot; ); scanf ( &quot;%d&quot; , &n1); printf ( &quot;Digite n2: &quot; ); scanf ( &quot;%d&quot; , &n2); troca(&n1, &n2); printf ( &quot;n1 eh: %d&quot; , n1); printf ( &quot;n2 eh: %d&quot; , n2); return 0; }
  • 20. Lista Encadeada Simples #include <stdio.h> #include <stdlib.h> typedef struct pessoa Pessoa ; struct pessoa { char nome [50]; int idade ; Pessoa * proximo ; }; int main() { Pessoa *pAtual, *pInicio = NULL, *pAnterior = NULL; char continua; do { pAtual = malloc( sizeof ( Pessoa )); printf ( &quot;Digite um nome: &quot; ); gets (pAtual-> nome ); printf ( &quot;Digite a idade: &quot; ); scanf ( &quot;%d&quot; , &pAtual-> idade ); getchar (); if (pInicio == NULL) { pInicio = pAtual; } if (pAnterior != NULL) { pAnterior-> proximo = pAtual; } pAnterior = pAtual; printf ( &quot;Insere mais (S/N)? &quot; ); continua = getchar (); getchar (); } while (toupper(continua) != 'N' ); pAtual = pInicio; while (pAtual != NULL) { printf ( &quot;Nome: %s - Idade: %d&quot; , pAtual-> nome , pAtual-> idade ); pAtual = pAtual-> proximo ; } }