偷偷拿来记录一下萌新的cs路——day 20 继续学习C++基本知识 ,引用的语法,作函数参数、函数返回值。
#include<iostream>
using 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;
}
运行结果
以后学了更多知识还会回来更新的!有误之处恳请大佬们指正,提前感谢!