| | | |

Minicurso de C++ para Matemática

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

2.6 Ponteiros

Um ponteiro é uma variável que armazena o endereço de outra variável. Podemos declarar um ponteiro para qualquer tipo de variável em C++. Por exemplo, vamos estudemos o seguinte código.

1#include <iostream>
2
3int main()
4{
5 // ponteiro
6 int *ptr;
7
8 // variáveis
9 int x = 10;
10 int y = 20;
11
12 // endereço de x
13 ptr = &x;
14 std::cout << "&x = " << ptr << std::endl;
15
16 // altera o valor de x
17 *ptr = 30;
18 std::cout << "x = " << x << std::endl;
19
20 // endereço de y
21 ptr = &y;
22 std::cout << "&y = " << ptr << std::endl;
23
24 //altera o valor de y
25 y = 40;
26 std::cout << "y = " << *ptr << std::endl;
27
28 return 0;
29}

Na linha 6, declaramos um ponteiro para um inteiro. Na linha 13, atribuímos o endereço da variável x ao ponteiro ptr. O operador & retorna o endereço de uma variável. Na linha 17, alteramos o valor da variável x através do ponteiro ptr. O operador * retorna o valor armazenado no endereço apontado pelo ponteiro. Na linha 21, atribuímos o endereço da variável y ao ponteiro ptr. Na linha 19, alteramos o valor da variável y. Por fim na linha 26, imprimimos o valor da variável y através do ponteiro ptr.

E. 2.6.1.

Após as seguintes instruções serem executadas, os endereços das variáveis x e y são iguais? Justifique e verifique sua resposta.

1double x = 2.5;
2double y = -1.41;
3x = y;

Não. Ao serem declaradas as variáveis x e y são alocadas em endereços diferentes. A instrução x = y copia o valor de y (alocado no endereço &y) para x (alocada em outro endereço &x).

E. 2.6.2.

Sem executar, diga qual é o valor da variável y ao final da execução das seguintes instruções. Justifique e verifique sua resposta.

1double x = 2.5;
2double y = -1.25;
3double *ptr = &x;
4y += x**ptr;

y == 5.0.


Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |