第一周:程序设计与算法(三)

 

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

posted @ 2020-01-12 11:50  waryan  阅读(290)  评论(0编辑  收藏  举报