-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpointer_ke_pointer.cpp
More file actions
79 lines (65 loc) · 1.79 KB
/
pointer_ke_pointer.cpp
File metadata and controls
79 lines (65 loc) · 1.79 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// pointer bisa -> variabel yang menyimpan alamt memori dari variabel lain
// pointer yang menyimpan alamat memori dari pointer lain
// int** pointer_ke_pointer;
// variabel x, pointer p -> x, pp -> p,
// x -> simpan nilai data
// p -> simpan alamat memori si x
// pp -> simpan alamat memori dari si p
// x -> 0x100
// p -> 0x200
// pp -> 0x300
// 1. alokasi memori dinamis
// 2. parameter fungsi
// 3. hirarki data:
#include <cstdlib>
#include <iostream>
/**
void modifikasiNilai(int** pp) {
**pp = 100;
}
**/
int main() {
/**
int x = 42;
int* p = &x;
int** pp = &p;
std::cout << "nilai x: " << x << std::endl;
std::cout << "alamat dari x (&x): " << &x << std::endl;
std::cout << "nilai dari p (alamat x): " << p << std::endl;
std::cout << "alamat dari p (&p): " << &p << std::endl;
std::cout << "nilai dari si pp (alamat si p): " << pp << std::endl;
std::cout << "nilai yang ditunjuk oleh si pp (*pp): " << *pp << std::endl;
std::cout << "nilai akhir dari si **pp: " << **pp << std::endl;
**/
/**
int x = 42;
int* p = &x;
int** pp = &p;
std::cout << "nilai sebelum kita modifikasi adalah: " << x << std::endl;
modifikasiNilai(pp);
std::cout << "nilai yang sudah kita rubah dari double pointer: " << x <<
std::endl;
**/
int baris = 3, kolom = 4;
int **matrix = new int *[baris];
for (int i = 0; i < baris; ++i) {
matrix[i] = new int[baris];
}
for (int i = 0; i < baris; ++i) {
for (int j = 0; j < kolom; ++j) {
matrix[i][j] = i * kolom + j;
}
}
std::cout << "matriks adalah: " << std::endl;
for (int i = 0; i < baris; ++i) {
for (int j = 0; j < kolom; ++j) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
for (int i = 0; i < baris; ++i) {
delete[] matrix[i];
}
delete[] matrix;
return 0;
}