偷偷拿来记录一下萌新的cs路——day 20 继续学习C++基本知识
#includeusing namespace std; //交换函数 //值传递 void swap01(int a, int b) { int temp = b; b = a; a = temp; } //地址传递 void swap02(int* a, int* b) { int temp = *b; *b = *a; *a = temp; } //引用传递 void swap03(int & a, int & b) { int temp = b; b = a; a = temp; } //引用作函数的返回值 int& test() { static int a = 10; //静态变量存放全局区;不可使用局部变量,存放栈区 return a; } //防止误操作 void showValue(const int &val) { //val = 100; //此举报错 cout << "value = " << val << endl; } int main() { int a = 10; int& c = a; // a别名b,引用须初始化 cout << "a= " << a; cout << "tc= " << c << endl; int b = 20; //c = b; //赋值,而非更改引用 //cout << "a'= " << a << endl; //cout << "c'= " << c << endl; swap01(a, b); //值传递,形参不会修饰实参 cout << "swap01a= " << a; cout << "tswap01b= " << b << endl; swap02(&a, &b); //地址传递,形参修饰实参 cout << "swap02a= " << a; cout << "tswap02b= " << b << endl; swap03(a, b); cout << "swap03a= " << a; cout << "tswap03b= " << b << endl; int& ref = test(); cout << "ref = " << ref << endl; test() = 1000; //a赋值1000,引用可作左值 cout << "ref' = " << ref << endl; showValue(a); return 0; }
运行结果



