001:简单的swap
1 #include <iostream> 2 using namespace std; 3 class A 4 { 5 public: 6 int x; 7 int getX() { return x; } 8 }; 9 void swap( 10 // 在此处补充你的代码 11 //通过引用完成交换 12 A &a,A &b 13 ) 14 { 15 int tmp = a.x; 16 a.x = b.x; 17 b.x = tmp; 18 } 19 int main() 20 { 21 A a,b; 22 a.x = 3; 23 b.x = 5; 24 swap(a,b); 25 cout << a.getX() << "," << b.getX(); 26 return 0; 27 }
002难一点的swap
1 #include <iostream> 2 using namespace std; 3 4 void swap( 5 // 在此处补充你的代码 6 //这个就高级了,通过引用地址交换地址来实现swap功能 7 int* &a,int* &b 8 ) 9 { 10 int * tmp = a; 11 a = b; 12 b = tmp; 13 } 14 int main() 15 { 16 int a = 3,b = 5; 17 int * pa = & a; 18 int * pb = & b; 19 swap(pa,pb); 20 cout << *pa << "," << * pb; 21 return 0; 22 }
003:好怪异的返回值
1 #include <iostream> 2 using namespace std; 3 // 在此处补充你的代码 4 //目的是为了引用函数 5 int & 6 getElement(int * a, int i) 7 { 8 return a[i]; 9 } 10 int main() 11 { 12 int a[] = {1,2,3}; 13 getElement(a,1) = 10; 14 cout << a[1] ; 15 return 0; 16 }
004:神秘的数组初始化
1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 int * a[] = { 7 // 在此处补充你的代码 8 //数组的“吊炸天”初始化 9 NULL,NULL,new int,new int[6] 10 }; 11 12 *a[2] = 123; 13 a[3][5] = 456; 14 if(! a[0] ) { 15 cout << * a[2] << "," << a[3][5]; 16 } 17 return 0; 18 }
第一次:11.25