-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path07-pointers.cpp
46 lines (40 loc) · 1.24 KB
/
07-pointers.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
using namespace std;
struct test {
int i;
};
int main() {
// Puntero es una variable que en vez de almacenar un valor, almacena
// la direccion de memoria en donde se encuentra un valor
// Los punteros siempre apuntan a un tipo de dato, por ejemplo puntero a entero
// puntero a flotante, etc
int* p;
int i = 0;
p = &i;
// Ahora, p esta apuntando a la variable i. Para acceder al valor que apunta p
// se debe hacer uso de `*`
cout << "valor apuntado por p = " << *p << "\n";
*p = *p + 2;
cout << "i = " << i << "\n";
// como p apunta a i, entonces si modificamos lo que apunta p, tambien veremos eso
// en la variable i
// tambien podemos hacer punteros a struct
test* t;
test var;
t = &var;
// para acceder a los campos del struct se puede hacer de dos formas
(*t).i = 0;
// pero tambien utilizando la flecha
t->i = 2;
// si van al codigo 5-arrays.cpp, veran que la variable del arreglo es una direccion
// de memoria por lo que podemos igualar esa variable a un punto
int arr[10];
int* p_arr;
for(p_arr = arr; p_arr < arr + 10; p_arr++) {
*p_arr = 1;
}
for(p_arr = arr; p_arr < arr + 10; p_arr++) {
cout << "*p_arr (arr[i]) = " << *p_arr << "\n";
}
return 0;
}