본문 바로가기

Code/C++

[C++] (example) & operator / pointer / pass by address/ function pointer

 

예시1번


#include <iostream>

 

using namespace std;


int main() {
int x = 4;
int *p;

cout << endl << "(1)[address of x: " << &x << "]" << "[value of x: " << x << "]";

p = &x;

cout << endl << "(2)[address of x: " << &x << "]" << "[value of x: " << x << "]";
cout << endl << "(2)[pointed by p: " << p << "]" << "[value of pointed p: " << *p << "]";


*p = 7;

cout << endl << "(3)[address of x: " << &x << "]" << "[value of x: " << x << "]";
cout << endl << "(3)[pointed by p: " << p << "]" << "[value of pointed p: " << *p << "]";

return 0;

}

 

 

>>>
(1)[address of x: 0116F86C][value of x: 4]
(2)[address of x: 0116F86C][value of x: 4]
(2)[pointed by p: 0116F86C][value of pointed p: 4]
(3)[address of x: 0116F86C][value of x: 7]
(3)[pointed by p: 0116F86C][value of pointed p: 7]

 

 

 

예시2번


void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}

int main() {
int var1 = 5, var2 = 19;
std::cout<< "var1 = " << var1 << ", var2 = " << var2 << '\n';
swap(&var1, &var2);
std::cout << "var1 = " << var1 << ", var2 = " << var2 << '\n';
}

 

>>>

var1 = 5, var2 = 19
var1 = 19, var2 = 5

 

 

예시 3번


void swap(int* a, int* b) {
int temp = *a;
cout << "a= " << a << "(" << *a << "), " << "b= " << b << "(" << *b << ")" << '\n';

*a = *b;
*b = temp;

cout << "a= " << a << "(" << *a << "), " << "b= " << b << "(" << *b << ")" << '\n';

}


int main() {
int var1 = 5, var2 = 19;
cout << "var1= " << var1 << "(" << &var1 << "), "
<< "var2= " << var2 << "(" << &var2 << ")" << '\n';

swap(&var1, &var2);

cout << "var1= " << var1 << "(" << &var1 << "), "
<< "var2= " << var2 << "(" << &var2 << ")" << '\n';
}


>>>

var1= 5(0053F6EC), var2= 19(0053F6E0)
a= 0053F6EC(5), b= 0053F6E0(19)
a= 0053F6EC(19), b= 0053F6E0(5)
var1= 19(0053F6EC), var2= 5(0053F6E0)