



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Neste documento, matías rodriguez explica o que são valores e ponteiros em c++, além de ponteiros para ponteiros e referências. Ele começa por definir valores como endereços de memória e explica como o computador enxerga uma variável. Em seguida, ele apresenta o conceito de ponteiros, que são endereços de memória e não valores. O autor também fornece exemplos práticos para ajudar no entendimento da sintaxe do c++. Além disso, ele aborda a questão de como modificar o valor de uma variável usando apenas um ponteiro para ela.
Tipologia: Notas de estudo
1 / 7
Esta página não é visível na pré-visualização
Não perca as partes importantes!




1 void main() 2 { 3 int a=5; 4 char ch='x'; 5 }
1 void main() 2 { 3 int a=5; 4 char ch='x'; 5 int* aPtr=&a; 6 }
1 int a=10; 2 int* aPtr=&a; 3 aPtr=11; //isto não compila
1 int a=10; 2 int* aPtr=&a; 3 *aPtr=11; //jeito certo, agora o valor de "a" é 11.
1 //declaro dois inteiros ("a" e "b") e dois 2 //ponteiros para inteiro ("ptr1" e "ptr2") 3 int a, b, *ptr1, *ptr2; 4 a=10; //inicializo "a". 5 b=11; //inicializo "b". 6 //"ptr1" recebe o endereço de "a". 7 ptr1=&a; 8 //"ptr2" recebe o valor de "ptr1" que é o endereço de "a". 9 //Tudo bem pois os dois ("ptr1" e "ptr2") são ponteiros para inteiro). 10 ptr2=ptr1; 11 //"ptr1" aponta para "b". Notar que "ptr2" continua apontando para "a"! 12 ptr1=&b; 13 //o valor da variável apontada por "ptr2" ("a") recebe 20. 14 //é a mesma coisa que a=20; 15 *ptr2=20; 16 //"b" recebe 21. Então *ptr1 também é igual a 21 pois "ptr1" aponta para "b". 17 b=21; 18 //Nossa! :) Isto é uma expressão burra pois é a mesma coisa que escrever a=30; 19 //de uma forma mais difícil. É so utilizar os conceitos aprendidos: 20 //"a" é um inteiro e quando fazemos: &a estamos pegando o endereço de "a". 21 //e ao fazer *(...) estamos navegando para aquele ondereço e atualizando o 22 //valor da variável com 30. 23 *(&a)=30;
int****** ptr=NULL;
1 //criar a variável "a" e iniciá-la com o valor 2 e a variável "b" com
2 int a=2, b=3; 3 //criar um ponteiro para inteiro que recebe o endereço de "a". 4 int* ptr1=&a; 5 //criar um ponteiro para um ponteiro para inteiro e inicializá-lo com o endereço 6 //de "ptr1". Uma expressão como int** ptrPtr1=ptr1; não é valida. O motivo 7 //já foi discutido: Tipagem, ptrPtr1 é um ponteiro para ponteiro para inteiro 8 //e ptr1 é ponteiro para inteiro, ou seja, tipos diferentes. 9 int** ptrPtr1=&ptr1; 10 //agora "a" é igual a 5. Estamos fazendo duas indireções. 11 **ptrPtr1=5; 12 //agora "ptr1" aponta para "b" e não mais para "a". Notar que não 13 //referenciamos "ptr1". 14 *ptrPtr1=&b; 15 //agora "b" é igual a 6. 16 **ptrPtr1=6; 17 //Modificar "b" para 6 neste exemplo pode ser feito das seguintes 18 //outras formas: 19 //b=6; ou *ptr1=6;
14 *ptrPtr1=&b;
16 **ptrPtr1=6;