qq钓鱼网站怎么制作,家纺网站建设,网站设计权限,嘉兴网站建设方案咨询文章目录 一、引用的特性#xff1a;引用的实质引用权限使用场景引用和指针的区别 c引用不是定义了新的对象#xff0c;而是对一个已有的对象起了一个别名#xff0c;如鲁迅和周树人的关系#xff0c;鲁迅是周树人的笔名#xff0c;两者是一个东西#xff0c;只是名字不同… 文章目录 一、引用的特性引用的实质引用权限使用场景引用和指针的区别 c引用不是定义了新的对象而是对一个已有的对象起了一个别名如鲁迅和周树人的关系鲁迅是周树人的笔名两者是一个东西只是名字不同正确来讲编译器不会为了引用变量再开空间它和它引用的空间使用了同一块内存空间 一、
使用格式 类型 引用变量名对象名引用实体
int a10;//定义实体a
int ba;//给实体起别名bps:引用类型和实体必须要是同一类型
引用的特性
引用的特性 1.引用在定义时必须初始化这点不同于指针因为指针可以不赋初值 2.一个变量可以有多个引用也可以给引用起引用但它们指向的是同一个实体 3.引用一旦初始化就不能更改实体对象这点不同于指针指针可以更改指向的空间但引用不可以 引用的实质
引用实际就是给实体对象起别名如定义 int a 10;此时系统开辟了一片空间里面存储了10a是它的名字定义int b a,就是给这片空间又起了一个小名。
引用权限
1.在c中我们可以给常量起别名方式和给变量起别名一样整数在c中默认类型为int ,浮点数为double 2.引用时别名的权限不能放大只能缩小或平移
//权限放大
//vs2019编译器会报错权限大于了实体
int a10;//错误的给常量起别名const int b10;//定义常变量
int cb;//权限平移
//编译器不会报错
const int a10const int b10;
const intcb; //权限的缩小
编译器不会报错
int a10;
const int ba;
使用场景
1.引用做参数以往用函数我们实现swap()一般都要使用指针实现传址传参但c的引用可以方便的解决这个问题 void Swap(int left, int right)
{int temp left;left right;right temp;
}2.引用做返回值
int Count()
{static int n 0;n;// ...return n;
}在函数中引用不管是做参数或返回值效率一般都会更高例如 现在有函数实参为一个有10000个节点的链表那么函数形参需要拷贝这10000个节点这样会浪费大量空间这个时候参数使用引用就不需要拷贝那么多节点实参和形参都指向一片地点
引用和指针的区别
引用概念上定义一个变量的别名指针存储一个变量地址。引用在定义时必须初始化指针没有要求引用在初始化时引用一个实体后就不能再引用其他实体而指针可以在任何时候指向任何一个同类型实体没有NULL引用但有NULL指针在sizeof中含义不同引用结果为引用类型的大小但指针始终是地址空间所占字节个数(32位平台下占4个字节)引用自加即引用的实体增加1指针自加即指针向后偏移一个类型的大小有多级指针但是没有多级引用访问实体方式不同指针需要显式解引用引用编译器自己处理引用比指针使用起来相对更安全