SlideShare uma empresa Scribd logo
1 de 27
Algoritmos e Programação I
Linguagem de Programação C
Ponteiros
Sumário
• Definição de ponteiros
• Porque utilizá-los?
• Declarando uma variável como ponteiro
• Operadores de ponteiros – Operadores
• Operadores de ponteiros: Resumo
• Operadores de ponteiros – Exemplo
• Expressões com ponteiros: Atribuição
• Expressões com ponteiros – Na memória
• Expressões com ponteiros: Aritmética
• Expressões com ponteiros: Aritmética
(continuação):
• Expressões com ponteiros: Comparação
• Expressões com ponteiros: Exemplo
• Ponteiros e Matrizes
• Ponteiros e Matrizes: Exemplo sem ponteiros
• Ponteiros e Matrizes: Exemplo com ponteiros
• Ponteiros e Matrizes: Endereço e conteúdo
• Ponteiros e Matrizes: Ponteiro constante
• Ponteiros e Matrizes: Ponteiro flutuante
• Ponteiros e Matrizes: Ponteiros para matrizes
• Ponteiros e Strings
• Ponteiros e Strings: Exemplo 01
• Ponteiros e strings: Funções de manipulação
• Ponteiros e Strings: Exemplo 02
05/07/2023 Professor Paulo Nunes 2
Definição de ponteiros
• Representação simbólica de um endereço de memória.
• Um ponteiro é um tipo especial de variável que armazena endereços.
• Tipos:
• Constantes: um endereço
• Variáveis: local para armazenar o endereço.
05/07/2023 Professor Paulo Nunes 3
Porque utilizá-los?
• Fornecem maneiras com as quais as funções podem realmente
modificar os argumentos que recebem;
• Permitem a passagem de matrizes e “strings” de forma mais precisa
de uma função para outra;
• Permitem uma melhor manipulação de matrizes;
• Para a criação de estruturas de dados complexas como listas
encadeadas e árvores binárias;
• Compilam mais rapidamente, o que torna o código mais eficiente.
05/07/2023 Professor Paulo Nunes 4
Declarando uma variável como ponteiro
• A declaração dever ser na forma:
tipo *variável;
• Onde:
• tipo: é um tipo de variável válido em C;
• *: identificador de ponteiro;
• variável: nome de variável válido em C.
• Exemplo:
int *a;
• As variáveis ponteiro devem sempre apontar para o tipo de dado
correto.
05/07/2023 Professor Paulo Nunes 5
Operadores de ponteiros - Operadores
• Existem dois operadores unários para manipulação de ponteiros:
• & devolve o endereço de memória de uma variável.
Por exemplo:
a = &endereco;
Armazena em “a” o endereço de memória da variável “endereço”. Diz-se “O
endereço de...”.
• * é o complemento de &, que devolve o valor da variável localizada no endereço
que o segue.
Por exemplo:
q = *a;
Armazena em “q” o conteúdo de “endereço”. Diz-se “No endereço de ...”.
05/07/2023 Professor Paulo Nunes 6
Operadores de ponteiros: Resumo
• Nome do ponteiro: retorno o endereço apontado pelo mesmo.
• &: junto ao nome do ponteiro, retorna o endereço do ponteiro.
• Exemplo: int *p; printf(“%u”,&p);
• *: junto ao nome do ponteiro, retorna o conteúdo da variável apontada pelo
mesmo.
• Exemplo: int x = 2; *p = x; printf(“%d”,*p);
05/07/2023 Professor Paulo Nunes 7
Operadores de ponteiros - Exemplo
05/07/2023 Professor Paulo Nunes 8
Declaração de variável
ponteiro
Variável “a” recebe o
endereço da variável
“endereço”.
Variável “q” recebe o
conteúdo da variável
“endereco”.
Expressões com ponteiros: Atribuição
05/07/2023 Professor Paulo Nunes 9
“q” aponta para
o endereço de
“x”.
“p” recebe o
conteúdo de
“q”.
será impresso o endereço de
“x”, pois ambos, “p” e “q”
apontam para ele.
Expressões com ponteiros – Na memória
Variável Conteúdo Aponta Endereço
x 5 2686732
y 10 2686728
p 2686732 5 2686724
q 2686728 10 2686720
05/07/2023 Professor Paulo Nunes 10
Expressões com ponteiros: Aritmética
• Duas operações apenas: Adição e Subtração.
• São incrementados e decrementados de acordo com o tipo base.
05/07/2023 Professor Paulo Nunes 11
Expressões com ponteiros: Aritmética
(continuação):
• A cada incremento, o ponteiro aponta para a próxima posição de memória do
elemento de seu mesmo tipo, ocorrendo o mesmo no decremento.
• Tipos float e double não podem ser adicionados ou subtraídos a ponteiros.
05/07/2023 Professor Paulo Nunes 12
Expressões com ponteiros: Comparação
• Utilizam-se os operadores (=, !=, >=, <=, > e <) para comparações entre
ponteiros.
• Os operandos devem ambos ser do tipo ponteiro.
• As variáveis apontadas pelos ponteiros devem ser do mesmo tipo.
05/07/2023 Professor Paulo Nunes 13
Expressões com ponteiros: Exemplo
05/07/2023 Professor Paulo Nunes 14
Ponteiros e Matrizes
• Matrizes, após a compilação, são transformadas em ponteiros.
• Operações com índices de matrizes podem ser feitas com ponteiros.
• O nome de uma matriz é um endereço, portanto um ponteiro.
• Acessam a memória de maneira idêntica.
05/07/2023 Professor Paulo Nunes 15
Ponteiros e Matrizes: Exemplo sem
ponteiros
05/07/2023 Professor Paulo Nunes 16
Ponteiros e Matrizes: Exemplo com
ponteiros
05/07/2023 Professor Paulo Nunes 17
Ponteiros e Matrizes: Endereço e conteúdo
• O que significa a expressão *(nums + d) na matriz com ponteiros?
• A expressão acessa o endereço do elemento de índice d da matriz
nums.
• *(matriz + índice)  matriz[linha]
• Um endereço de um elemento de uma matriz pode ser referenciado
das seguintes formas:
• nums + d ou &nums[d].
• Exemplo:
05/07/2023 Professor Paulo Nunes 18
Ponteiros e Matrizes: Ponteiro constante
05/07/2023 Professor Paulo Nunes 19
“notas” é o endereço
da matriz “notas[]”,
não podendo ser
variado.
Diretiva de pré-
processador. Define
um valor como
constante.
Ponteiros e Matrizes: Ponteiro flutuante
05/07/2023 Professor Paulo Nunes 20
Aponta para uma matriz do
tipo float, incrementando 4
bytes a cada operação.
Ponteiros e Matrizes: Ponteiros para
matrizes
05/07/2023 Professor Paulo Nunes 21
Função que adiciona um
valor aos elementos da
matriz.
Chamada da função
passando o endereço da
matriz como argumento.
Cria um ponteiro
variável
Ponteiros e Strings
• Matriz unidimensional de caracteres que termina em nulo ‘0’.
• Constantes string são uma lista de caracteres entre aspas.
• Exemplo: “Escreva aqui”
• O caractere nulo é adicionado ao final da string automaticamente
pelo compilador.
• Para funções de manipulação de string, utiliza-se a biblioteca
STRING.H.
05/07/2023 Professor Paulo Nunes 22
Ponteiros e Strings: Exemplo 01
05/07/2023 Professor Paulo Nunes 23
Quando a função não for inteira,
deve ser declarada em main().
Retorna o ponteiro informando a
posição do caractere na frase.
Ponteiros e strings: Funções de
manipulação
• Estas são algumas das funções para manipulação de strings em C:
• strcpy(string1,string2) : copia string2 em string1.
• strcat(string1,string2): concatena string2 no final de string1.
• strlen(string): retorna o tamanho de string.
• strcmp(string1,string2): retorna 0 se string1 e string2 iguais, < 0 se string1 <
string2 e > 0 se string1 > string2.
• strchr(string,ch): retorna um ponteiro para a primeira ocorrência de ch em
string.
• strstr(string1,string2): retorna um ponteiro para a primeira ocorrência de
string2 em string1.
05/07/2023 Professor Paulo Nunes 24
Ponteiros e Strings: Exemplo 02
05/07/2023 Professor Paulo Nunes 25
Retorna o
tamanho de str1.
Retorna o
tamanho de str2.
Verifica se as
strings são iguais.
Concatena str2
ao final de str1.
Copia str2 em
str1.
Aponta para a primeira
ocorrência de ‘O’ em “Ola”.
Aponta para a primeira ocorrência
de ‘Ola’ em “Ola aqui”.
O professor
05/07/2023 Professor Paulo Nunes 26
Referências bibliográficas
• Kerninghan, Brian W. The C Programming Language. Second Ed.
Includes index. (C Computer Program Language). I. Ritchie, Dennis M.
Prentice Hall, 1978.
• Mizrahi, Victorine Viviane. Treinamento em Linguagem C – Módulo 2.
McGraw-Hill, Ltda. 1990.
• Schildt, Herbert. C: The complete reference. 3ª Ed. Pearson, 1997.
05/07/2023 Professor Paulo Nunes 27

Mais conteúdo relacionado

Semelhante a C Ponteiros Guia Completo

Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaEduardo Oliveira
 
Aula04 ponteiros e conversao
Aula04   ponteiros e conversaoAula04   ponteiros e conversao
Aula04 ponteiros e conversaoYuri Passos
 
Python introdução a linguagem de programação
Python introdução a linguagem de programaçãoPython introdução a linguagem de programação
Python introdução a linguagem de programaçãoAlysonTrindadeFernan
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoesYuri Passos
 
document.onl_manual-psi-m5.pdf
document.onl_manual-psi-m5.pdfdocument.onl_manual-psi-m5.pdf
document.onl_manual-psi-m5.pdfAnaAlmeida462833
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: IntroduçãoWesley R. Bezerra
 
1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.pptAlan5263
 
Aula de programacao_final.dizando
Aula de programacao_final.dizandoAula de programacao_final.dizando
Aula de programacao_final.dizandoJoão Gomes
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosAdriano Teixeira de Souza
 
Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4D M
 

Semelhante a C Ponteiros Guia Completo (20)

Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação Dinâmica
 
Ed1
Ed1Ed1
Ed1
 
Java Básico
Java BásicoJava Básico
Java Básico
 
Unidade06
Unidade06Unidade06
Unidade06
 
Aula04 ponteiros e conversao
Aula04   ponteiros e conversaoAula04   ponteiros e conversao
Aula04 ponteiros e conversao
 
Python introdução a linguagem de programação
Python introdução a linguagem de programaçãoPython introdução a linguagem de programação
Python introdução a linguagem de programação
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Introdução a Python
Introdução a PythonIntrodução a Python
Introdução a Python
 
document.onl_manual-psi-m5.pdf
document.onl_manual-psi-m5.pdfdocument.onl_manual-psi-m5.pdf
document.onl_manual-psi-m5.pdf
 
PHP - Strings
PHP - StringsPHP - Strings
PHP - Strings
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: Introdução
 
PHP
PHPPHP
PHP
 
1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt
 
Aula de programacao_final.dizando
Aula de programacao_final.dizandoAula de programacao_final.dizando
Aula de programacao_final.dizando
 
Pesquisa ppi 2
Pesquisa ppi 2Pesquisa ppi 2
Pesquisa ppi 2
 
Oz
OzOz
Oz
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Pged 01
Pged 01Pged 01
Pged 01
 
Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4
 
05 classes utilitarias
05   classes utilitarias05   classes utilitarias
05 classes utilitarias
 

Mais de SchoolByte

Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.SchoolByte
 
Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.SchoolByte
 
Laços de repetição em C.
Laços de repetição em C.Laços de repetição em C.
Laços de repetição em C.SchoolByte
 
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 CSchoolByte
 
Estruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitosEstruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitosSchoolByte
 
Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.SchoolByte
 
Vetores e Matrizes em C.
Vetores e Matrizes em C.Vetores e Matrizes em C.
Vetores e Matrizes em C.SchoolByte
 
Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.SchoolByte
 
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em CComandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em CSchoolByte
 
Tutorial Visual do Open-Sankoré
Tutorial Visual do Open-SankoréTutorial Visual do Open-Sankoré
Tutorial Visual do Open-SankoréSchoolByte
 
Tutorial Visual do Dropbox
Tutorial Visual do DropboxTutorial Visual do Dropbox
Tutorial Visual do DropboxSchoolByte
 

Mais de SchoolByte (11)

Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.
 
Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.
 
Laços de repetição em C.
Laços de repetição em C.Laços de repetição em C.
Laços de repetição em C.
 
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
 
Estruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitosEstruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitos
 
Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.
 
Vetores e Matrizes em C.
Vetores e Matrizes em C.Vetores e Matrizes em C.
Vetores e Matrizes em C.
 
Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.
 
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em CComandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
 
Tutorial Visual do Open-Sankoré
Tutorial Visual do Open-SankoréTutorial Visual do Open-Sankoré
Tutorial Visual do Open-Sankoré
 
Tutorial Visual do Dropbox
Tutorial Visual do DropboxTutorial Visual do Dropbox
Tutorial Visual do Dropbox
 

Último

Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e CaracterísticassAugusto Costa
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxSamiraMiresVieiradeM
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficasprofcamilamanz
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreElianeElika
 

Último (20)

Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e Característicass
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficas
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 

C Ponteiros Guia Completo

  • 1. Algoritmos e Programação I Linguagem de Programação C Ponteiros
  • 2. Sumário • Definição de ponteiros • Porque utilizá-los? • Declarando uma variável como ponteiro • Operadores de ponteiros – Operadores • Operadores de ponteiros: Resumo • Operadores de ponteiros – Exemplo • Expressões com ponteiros: Atribuição • Expressões com ponteiros – Na memória • Expressões com ponteiros: Aritmética • Expressões com ponteiros: Aritmética (continuação): • Expressões com ponteiros: Comparação • Expressões com ponteiros: Exemplo • Ponteiros e Matrizes • Ponteiros e Matrizes: Exemplo sem ponteiros • Ponteiros e Matrizes: Exemplo com ponteiros • Ponteiros e Matrizes: Endereço e conteúdo • Ponteiros e Matrizes: Ponteiro constante • Ponteiros e Matrizes: Ponteiro flutuante • Ponteiros e Matrizes: Ponteiros para matrizes • Ponteiros e Strings • Ponteiros e Strings: Exemplo 01 • Ponteiros e strings: Funções de manipulação • Ponteiros e Strings: Exemplo 02 05/07/2023 Professor Paulo Nunes 2
  • 3. Definição de ponteiros • Representação simbólica de um endereço de memória. • Um ponteiro é um tipo especial de variável que armazena endereços. • Tipos: • Constantes: um endereço • Variáveis: local para armazenar o endereço. 05/07/2023 Professor Paulo Nunes 3
  • 4. Porque utilizá-los? • Fornecem maneiras com as quais as funções podem realmente modificar os argumentos que recebem; • Permitem a passagem de matrizes e “strings” de forma mais precisa de uma função para outra; • Permitem uma melhor manipulação de matrizes; • Para a criação de estruturas de dados complexas como listas encadeadas e árvores binárias; • Compilam mais rapidamente, o que torna o código mais eficiente. 05/07/2023 Professor Paulo Nunes 4
  • 5. Declarando uma variável como ponteiro • A declaração dever ser na forma: tipo *variável; • Onde: • tipo: é um tipo de variável válido em C; • *: identificador de ponteiro; • variável: nome de variável válido em C. • Exemplo: int *a; • As variáveis ponteiro devem sempre apontar para o tipo de dado correto. 05/07/2023 Professor Paulo Nunes 5
  • 6. Operadores de ponteiros - Operadores • Existem dois operadores unários para manipulação de ponteiros: • & devolve o endereço de memória de uma variável. Por exemplo: a = &endereco; Armazena em “a” o endereço de memória da variável “endereço”. Diz-se “O endereço de...”. • * é o complemento de &, que devolve o valor da variável localizada no endereço que o segue. Por exemplo: q = *a; Armazena em “q” o conteúdo de “endereço”. Diz-se “No endereço de ...”. 05/07/2023 Professor Paulo Nunes 6
  • 7. Operadores de ponteiros: Resumo • Nome do ponteiro: retorno o endereço apontado pelo mesmo. • &: junto ao nome do ponteiro, retorna o endereço do ponteiro. • Exemplo: int *p; printf(“%u”,&p); • *: junto ao nome do ponteiro, retorna o conteúdo da variável apontada pelo mesmo. • Exemplo: int x = 2; *p = x; printf(“%d”,*p); 05/07/2023 Professor Paulo Nunes 7
  • 8. Operadores de ponteiros - Exemplo 05/07/2023 Professor Paulo Nunes 8 Declaração de variável ponteiro Variável “a” recebe o endereço da variável “endereço”. Variável “q” recebe o conteúdo da variável “endereco”.
  • 9. Expressões com ponteiros: Atribuição 05/07/2023 Professor Paulo Nunes 9 “q” aponta para o endereço de “x”. “p” recebe o conteúdo de “q”. será impresso o endereço de “x”, pois ambos, “p” e “q” apontam para ele.
  • 10. Expressões com ponteiros – Na memória Variável Conteúdo Aponta Endereço x 5 2686732 y 10 2686728 p 2686732 5 2686724 q 2686728 10 2686720 05/07/2023 Professor Paulo Nunes 10
  • 11. Expressões com ponteiros: Aritmética • Duas operações apenas: Adição e Subtração. • São incrementados e decrementados de acordo com o tipo base. 05/07/2023 Professor Paulo Nunes 11
  • 12. Expressões com ponteiros: Aritmética (continuação): • A cada incremento, o ponteiro aponta para a próxima posição de memória do elemento de seu mesmo tipo, ocorrendo o mesmo no decremento. • Tipos float e double não podem ser adicionados ou subtraídos a ponteiros. 05/07/2023 Professor Paulo Nunes 12
  • 13. Expressões com ponteiros: Comparação • Utilizam-se os operadores (=, !=, >=, <=, > e <) para comparações entre ponteiros. • Os operandos devem ambos ser do tipo ponteiro. • As variáveis apontadas pelos ponteiros devem ser do mesmo tipo. 05/07/2023 Professor Paulo Nunes 13
  • 14. Expressões com ponteiros: Exemplo 05/07/2023 Professor Paulo Nunes 14
  • 15. Ponteiros e Matrizes • Matrizes, após a compilação, são transformadas em ponteiros. • Operações com índices de matrizes podem ser feitas com ponteiros. • O nome de uma matriz é um endereço, portanto um ponteiro. • Acessam a memória de maneira idêntica. 05/07/2023 Professor Paulo Nunes 15
  • 16. Ponteiros e Matrizes: Exemplo sem ponteiros 05/07/2023 Professor Paulo Nunes 16
  • 17. Ponteiros e Matrizes: Exemplo com ponteiros 05/07/2023 Professor Paulo Nunes 17
  • 18. Ponteiros e Matrizes: Endereço e conteúdo • O que significa a expressão *(nums + d) na matriz com ponteiros? • A expressão acessa o endereço do elemento de índice d da matriz nums. • *(matriz + índice)  matriz[linha] • Um endereço de um elemento de uma matriz pode ser referenciado das seguintes formas: • nums + d ou &nums[d]. • Exemplo: 05/07/2023 Professor Paulo Nunes 18
  • 19. Ponteiros e Matrizes: Ponteiro constante 05/07/2023 Professor Paulo Nunes 19 “notas” é o endereço da matriz “notas[]”, não podendo ser variado. Diretiva de pré- processador. Define um valor como constante.
  • 20. Ponteiros e Matrizes: Ponteiro flutuante 05/07/2023 Professor Paulo Nunes 20 Aponta para uma matriz do tipo float, incrementando 4 bytes a cada operação.
  • 21. Ponteiros e Matrizes: Ponteiros para matrizes 05/07/2023 Professor Paulo Nunes 21 Função que adiciona um valor aos elementos da matriz. Chamada da função passando o endereço da matriz como argumento. Cria um ponteiro variável
  • 22. Ponteiros e Strings • Matriz unidimensional de caracteres que termina em nulo ‘0’. • Constantes string são uma lista de caracteres entre aspas. • Exemplo: “Escreva aqui” • O caractere nulo é adicionado ao final da string automaticamente pelo compilador. • Para funções de manipulação de string, utiliza-se a biblioteca STRING.H. 05/07/2023 Professor Paulo Nunes 22
  • 23. Ponteiros e Strings: Exemplo 01 05/07/2023 Professor Paulo Nunes 23 Quando a função não for inteira, deve ser declarada em main(). Retorna o ponteiro informando a posição do caractere na frase.
  • 24. Ponteiros e strings: Funções de manipulação • Estas são algumas das funções para manipulação de strings em C: • strcpy(string1,string2) : copia string2 em string1. • strcat(string1,string2): concatena string2 no final de string1. • strlen(string): retorna o tamanho de string. • strcmp(string1,string2): retorna 0 se string1 e string2 iguais, < 0 se string1 < string2 e > 0 se string1 > string2. • strchr(string,ch): retorna um ponteiro para a primeira ocorrência de ch em string. • strstr(string1,string2): retorna um ponteiro para a primeira ocorrência de string2 em string1. 05/07/2023 Professor Paulo Nunes 24
  • 25. Ponteiros e Strings: Exemplo 02 05/07/2023 Professor Paulo Nunes 25 Retorna o tamanho de str1. Retorna o tamanho de str2. Verifica se as strings são iguais. Concatena str2 ao final de str1. Copia str2 em str1. Aponta para a primeira ocorrência de ‘O’ em “Ola”. Aponta para a primeira ocorrência de ‘Ola’ em “Ola aqui”.
  • 27. Referências bibliográficas • Kerninghan, Brian W. The C Programming Language. Second Ed. Includes index. (C Computer Program Language). I. Ritchie, Dennis M. Prentice Hall, 1978. • Mizrahi, Victorine Viviane. Treinamento em Linguagem C – Módulo 2. McGraw-Hill, Ltda. 1990. • Schildt, Herbert. C: The complete reference. 3ª Ed. Pearson, 1997. 05/07/2023 Professor Paulo Nunes 27