計算機概論實習
2 Claim a Parameter int a; a = 5; typenameaddress inta0x0001 addressvalue 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 typenameaddress 5 char c; c = 'A'; typenameaddress inta0x0001 charc0x0006 'A'
3 Print a Parameter typenameaddress inta0x0001 charc0x0006 addressvalue 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x cout << a; cout << &a; 'A'
4 Claim a Pointer typenameaddress inta0x0001 int*ap0x0008 addressvalue 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 int* ap; ap = &a; 0x0001 5
5 Print a Point typenameaddress inta0x0001 int*ap0x0008 addressvalue 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x cout << ap; cout << ≈ cout << *ap;
6 Claim a Class (Object) typenameaddress value 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 A a; a.a = 5; class A{ int p; int f(){return p;} }; typenameaddress Aa0x0001 a.a0x A &ap = a; typenameaddress Aa0x0001 a.a0x0001 Aap0x0001 ap.a0x0001
7 Print the Content of Object addressvalue 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x typenameaddress Aa0x0001 a.a0x0001 Aap0x0001 ap.a0x0001 cout << "&a: " << &a << endl; cout << "&ap: " << &ap << endl; &a: 0x0001 &ap: 0x0001 cout << "a.f(): " << a.f() << endl; cout << "ap.f(): " << ap.f() << endl; a.f(): 5 ap.f(): 5 a.a = 4; cout << "a.f(): " << a.f() << endl; cout << "ap.f(): " << ap.f() << endl; a.f(): 4 ap.f(): 4 4
8 Call by Value addressvalue 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 typenameaddress inta0x0001 charc0x0006 void main(){ int a; a = 5; f(a); } void f(int c){ c = 4; }
9 Call by Address typenameaddress inta0x0001 int*ap0x0008 addressvalue 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 void main(){ int a = 5; f(a); } void f(int* ap){ *ap = 4; ap = ap + 1; } x x
10 Call by Reference addressvalue 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 typenameaddress Aa0x0001 a.a0x0001 Aao0x0001 ao.a0x void main(){ A a; a.a = 5; f(a); } void f(A& ao){ ao.a = 4; }
11 Try it!!! Please explain that what happen in the following code. Please write a sample code to prove your mind. A a1,a2; a1.a = 5; a2 = a1; :