北京上云科技网站建设,兴山县铁路建设协调指挥部网站,建设网站程序下载,糕点网站策划书1.基本语法
作用#xff1a;给变量起别名
语法#xff1a;数据类型 别名 原名#xff08;int b a#xff0c;其中别名与原名的数据类型必须一致#xff09;
注意事项#xff1a;
引用必须初始化引用在初始化后#xff0c;就不可以再改变了
代码演示给变量起别名
语法数据类型 别名 原名int b a其中别名与原名的数据类型必须一致
注意事项
引用必须初始化引用在初始化后就不可以再改变了
代码演示
#include iostream
using namespace std;int main() {int a 10;int c 30;// 创建引用int b a;// 1、引用必须初始化// int c; // 报错b 20;cout a endl;cout b endl;// 2、引用一旦初始化后就不能够再改变了b c; // 这只是赋值操作而不是更改引用cout a endl;cout b endl;cout c endl;system(pause);return 0;
}输出结果
20
20
30
30
30
请按任意键继续. . .当变量a的别名b值发生变化的时候a的值也会相应的进行改变2.引用做函数参数
引用做函数参数的作用函数传参时可以利用引用的技术让形参修饰实参。
优点可以简化指针修饰实参。
代码演示
#include iostream
using namespace std;// 值传递
void swap01(int num1,int num2)
{int temp num1;num1 num2;num2 temp;
}// 地址传递
void swap02(int* a, int* b)
{int temp *a;*a *b;*b temp;
}// 引用传递
void swap03(inta,intb )
{int temp a;a b;b temp;
}int main() {int a 6;int b 23;swap01(a,b); //值传递不会修饰实参cout swap01中的a a endl; //a6cout swap01中的b b endl; //b23swap02(a, b); //地址传递会修饰实参cout swap02中的a a endl; //a23cout swap02中的b b endl; //b6swap03(a,b); //引用传递也会修饰实参cout swap03中的a a endl; //a6cout swap03中的b b endl; //b23system(pause);return 0;
}输出结果
swap01中的a 6
swap01中的b 23
swap02中的a 23
swap02中的b 6
swap03中的a 6
swap03中的b 23
请按任意键继续. . .值传递不会改变实参的值地址传递与引用传递都会改变实参的值即会修饰实参。3.引用做函数的返回值
作用引用是可以作为函数的返回值存在的
注意事项
不要返回局部变量的引用引用做函数的返回值时函数调用可以作为左值
代码演示
#include iostream
using namespace std;// 返回局部变量引用
int func()
{int a 10; //局部变量存放在栈区系统会在程序运行完后释放return a;
}// 函数的调用可以作为左值
int func1()
{static int b 20; // 静态变量存放在全局区全局区上的数据在程序结束后系统释放return b;
}int main() {int ref func();cout ref endl; //第一次能够正确打印是因为编译器对局部变量数据进行了保存//cout ref endl; //当第二次再对局部变量数据进行打印时将会报错因为编译器只对数据进行一次保留int ref2 func1();cout ref2 endl;cout ref2 endl;func1() 2022; //此处相当于int temp b; b temp 2022; cout ref2 endl;cout ref2 endl;system(pause);return 0;
}输出结果
10
20
20
2022
2022
请按任意键继续. . .4.引用的本质
引用的本质引用的本质在C内部实现是一个指针常量只能改变指针指向内存的值但是不能改变指针的指向
C推荐用引用技术因为语法方便引用本质是指针常量但是所有的指针操作编译器都帮我们做了
代码演示
#include iostream
using namespace std;// 发现是引用转换为 int * const ref a;
void func(int ref)
{ref 100; // ref是引用转换为 *ref 100
}int main() {int a 10;// 自动转换成 int* const ref a;指针常量是指针指向不可更改也说明了为什么引用不可更改int ref a; ref 20; // 内部发现ref为引用自动帮我们转换为 *ref 20cout a endl;cout ref endl;system(pause);return 0;
}输出结果
20
20
请按任意键继续. . .5.常量引用
作用主要用来修饰形参防止误操作 在函数形参列表中可以加const修饰形参防止形参改变实参
使用场景用来修饰形参
代码演示
#include iostream
using namespace std;// 常量引用使用的场景通常用来修饰形参防止误操作
void func(const int ref) //函数作用对实参进行打印。
{// ref 2022; //引用前加const得到常量引用此时引用不能做任何更改cout ref endl;
}int main() {// int ref 10; 引用本身需要一个合法的内存空间因此会报错// 加入const就可以编译器优化代码int temp 10; const int ref temp;const int ref 10;// ref 100; // 加入const后不可修改变量cout ref endl;int a 2025;func(a);system(pause);return 0;
}输出结果
10
2025
请按任意键继续. . .