网站排版策划,泰安网站建设论文结论,郑州市住房和城乡建设厅网站,建设通会员多少钱一个月C中的引用
引用的基本语法
作用#xff1a;给变量起别名 语法#xff1a;数据类型 别名 原名
//比如给一个int变量a命名一个别名 b
int b a;b 20;
cout a endl;//a 20引用的注意事项
引用必须初始化
int b;//错误的引用在初始化后中的引用
引用的基本语法
作用给变量起别名 语法数据类型 别名 原名
//比如给一个int变量a命名一个别名 b
int b a;b 20;
cout a endl;//a 20引用的注意事项
引用必须初始化
int b;//错误的引用在初始化后就不可以改变了示例:
int mian()
{
int a 10;
int b 20;int c a;
cb;
cout引用做函数参数
作用:函数传参时可以利用引用的技术让形参修饰实参 优点:可以简化指针修改实参
示例
#includeiostream
using namespace std;//交换函数
//1、值传递
void mySwap01(int a, int b)
{int temp a;a b;b temp;cout swap01 a a endl;cout swap01 b b endl;
}//2、地址传递
void mySwap02(int *a,int *b)
{int temp *a;*a *b;*b temp;
}
//
//3、引用传递
void mySwap03(int a,int b)//ab已经时引用作为别名进行操作修改理解为就是对于实参进行操作
{int temp a;a b;b temp;
}
int main()
{int a 10;int b 20;//mySwap01(a, b);//值传递形参不会改变实参//mySwap02(a, b);//地址传递形参会修饰实参mySwap03(a, b);//引用传递形参会修饰实参cout a a endl;cout b b endl;system(pause);
}引用做函数返回值
作用引用时可以作为函数的返回值存在的。
注意不要返回局部变量引用 用法函数调用做左值
示例
#includeiostream
using namespace std;//引用做函数的返回值
//1、不要返回局部变量的引用
int test01()
{int a 10; //局部变量存放在四区中的 栈区return a;
}
//2、函数的调用可以做为左值int test02()
{static int a 10; //静态变量存放在全局区全局区上的数据在程序结束后系统释放return a;
}
int main()
{int ref test01();cout ref ref endl;cout ref ref endl;int ref1 test02();cout ref1 ref1 endl;//实现对于静态变量的返回cout ref1 ref1 endl;//在程序结束之前不会被释放//如果函数的返回值是引用这个函数调用可以作为左值test02() 1000;//返回的是a相当于对a直接操作cout ref1 ref1 endl;//ref1就是a的别名所以此时就会改变此处的值了cout ref1 ref1 endl;system(pause);
}引用的本质
本质引用的本质在C内部实现是一个指针常量指针的指向是不可更改的
示例
#includeiostream
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: a endl;cout ref: ref endl;func(a);cout a: a endl;cout ref: ref endl;return 0;
}结论C推荐引用技术因为语法方便引用本质就是指针常量但是所有的指针操作编译器都帮我们做了。
常量引用
作用:常量引用主要用来修饰形参防止误操作 在函数形参列表中可以加const修饰形参防止形参改变实参
示例
#includeiostream
using namespace std;//打印数据函数
void showValue(const int val)
{//val 1000;cout val val endl;
}int main()
{//常量引用//使用场景用来修饰形参,防止误操作//int a 10;//加上const之后 编译器将代码修改 int temp 10 const int ref temp;//const int ref 10;//引用必须引用一块合法的引用空间//ref 20//加入const之后变为只读不可以修改int a 100;showValue(a);cout a a endl;system(pause);return 0;
}