Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Aula-16 - Ponteiros (2), Notas de aula de Informática

Aula de Linguagem de Programação 1/C++ da professora Cátia Brasil.

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 14/04/2010

ygor-dos-santos-luz-3
ygor-dos-santos-luz-3 🇧🇷

4.7

(3)

55 documentos

1 / 18

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Aula 16 – Ponteiros (2)
Aritmética de ponteiros
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Pré-visualização parcial do texto

Baixe Aula-16 - Ponteiros (2) e outras Notas de aula em PDF para Informática, somente na Docsity!

Aula 16 – Ponteiros (2)

Aritmética de ponteiros

Expressões com ponteiros

  • (^) Expressões aritméticas e de atribuição ++ - – + ou += (inteiro) - ou – = (inteiro ou ponteiro)

vPtr ++; v[0] v[1] v[2] v[3] v[4]

vPtr

int *vPtr2 = &v[3];

vPtr int a = vPtr2 – vPtr;

a

Expressões de comparação

  • (^) Ponteiros do mesmo tipo podem ser comparados com operadores relacionais ou de igualdade int *ptr1, *ptr2; ... if (ptr1 == ptr2) cout << “ptr1 = ptr2”;
  • (^) Só faz sentido para ponteiros que apontam para um mesmo array;

Exemplo: int main( ) { int b[ ] = { 10, 20, 30, 40 }, i, offset ; int *bPtr = b; // bPtr aponta para o array b cout << "Array b impresso com:\n" << "Notacao subscrito de array\n"; for ( i = 0; i < 4; i++ ) cout << "b[" << i << "] = " << b[ i ] << '\n';

cout << "\nNotacao ponteiro/offset, onde\n o ponteiro e’ o nome do array\n"; for ( offset = 0; offset < 4; offset ++ ) cout << "*(b + " << offset << ") = " << *( b + offset ) << '\n';

cout << "\nNotacao ponteiro/offset\n"; for ( offset = 0; offset < 4; offset++ ) cout << "*(bPtr + " << offset << ") = " << *( bPtr + offset ) << '\n'; return 0; }

25/11/2008 Aula 16 - Aritmética de Ponteiros 11 - 18 **Array b impresso com: Notacao subscrito de array b[0] = 10 b[1] = 20 b[2] = 30 b[3] = 40 Notacao ponteiro/offset, onde o ponteiro e' o nome do array *(b + 0) = 10 *(b + 1) = 20 (b + 2) = 30 (b + 3) = 40

#include

using namespace std;

void copy1( char *, const char * );

void copy2( char *, const char * );

int main( )

char string1[ 10 ], *string2 = "Olá", string3[ 10 ], string4[ ] = "Tchau"; copy1( string1, string2 ); cout << "string1 = " << string1 << endl; copy2( string3, string4 ); cout << "string3 = " << string3 << endl; system("PAUSE"); return 0; }

Arrays de ponteiros

  • (^) Arrays podem conter ponteiros;
  • (^) É o caso de um array de strings
    • (^) Um string, em C++, é um ponteiro para a primeira posição do array de caracteres;
    • (^) Ponteiro para o primeiro caractere do string;

Arrays de Ponteiros

const char *nype [4] = {“Copas”, “Ouros”, “Paus”, “Espadas”}; ‘C’ ‘o’ ‘p’ ‘a’ ‘s’ ‘\0’ ‘O’ ‘u’ ‘r’ ‘o’ ‘s’ ‘\0’ ‘P’ ‘a’ ‘u’ ‘s’ ‘\0’ ‘E’ ‘s’ ‘p’ ‘a’ ‘d’ ‘a’ ‘s’ ‘\0’ nype [0] ● nype [1] ● nype [2] ● nype [3] ●

  • (^) Apenas ponteiros são colocados no array nype.