Week 6 Flashcards
4 jenis passing parameters?
- passing by value
- passing by address
- passing by reference
- passing by const reference
what is reference?
reference adalah alias or synonym for another variable. server as alternative name for an object. harus di inisialisasi pada saat declared. Ex: int &count.
Perbedaan pointer dengan reference?
Pointer:
- tidak perlu diinisialisasikan pada saat definisi
- dapat di assign nilai baru untuk object yang berbeda
Reference:
- harus diinisialisasikan pada saat definisi
- selalu refer ke object yang sama
a constant reference variable var?
refer ke object yang nilai yang tidak dapat di ganti dengan var.
r is a reference for n?
int& r = *p;
operator * disebut?
dereferencing operator
3 jenis memory?
- static memory untuk global dan static variables live
- heap memory dialokasikan secara dinamis pada saat execution time. (unnamed variable)
- stack memory untuk automatic variable dan function parameters
3 jenis program data?
- static data, dialokasikan pada saat compiler time
- dynamic data, secara explicit di alokasikan dan deallocated pada saat program execution. dengan operator new and delete
- automatic data, secara otomatis dibuat pada function entry dan di hancurkan pada saat kembali ke function
dangling pointer?
a pointer that does not point to anything. uninitialized and de-allocated pointer
contoh dangling pointer?
int *p = new int;
contoh passing by value?
void calculate (int a, int b){ a = a+1; int c = a + b; cout << "c = " <<endl; }
contoh passing by address?
void calculate *a = *a+1; int c = *a + *b; cout << "c = " <<endl; }
contoh passing by reference?
void swap(int& x, int& y) { int temp = x; x = y; y = temp; }
contoh passing by const reference?
void calculate a = a+1; //error : cannot modify const object int c = a + b; cout << "c = " <<endl; }