您现在的位置是:主页 > news > 如何做泛解析网站/网络营销工程师培训
如何做泛解析网站/网络营销工程师培训
admin2025/6/7 2:40:32【news】
简介如何做泛解析网站,网络营销工程师培训,冯提莫斗鱼前在哪个网站做直播,国外创意网站设计欣赏一、引用 1、什么是引用? C新增了一种复合类型–引用变量。引用是已定义变量的别名,使用引用变量的主要的用途是作为函数的参数。通过将引用变量用作参数,通过形参就可以对原始的数据进行修改。这样除指针之外,引用也为函数处理c…
一、引用
1、什么是引用?
C++新增了一种复合类型–引用变量。引用是已定义变量的别名,使用引用变量的主要的用途是作为函数的参数。通过将引用变量用作参数,通过形参就可以对原始的数据进行修改。这样除指针之外,引用也为函数处理class与struct提供了一种非常方便的途径。C++新增的这种特性也是对C语言的超越,C语言只能按值传递,如果直接传递对象会调用类的拷贝构造函数。
2、声明引用变量
C与C++使用&来获取变量的地址。C++给&赋予了另外一个含义,将其用来声明引用,例如:
class Student{
public:int age;Student() {age = 100;}
};void Display(Student &r) {cout << r.age << endl;
}int main()
{Student obj;Display(obj);return 0;
}
引用非常适合用于结构与类,C++中引入引用的主要目的是为了这些类型的,而不是基本的内置类型。
3、引用用作函数参数
将类对象传递给函数时,C++的通常的做法是使用引用。使用引用作为函数参数可以节省时间与内存,因为,如果直接传递对象,会调用类的拷贝构造函数,当形参的声明周期结束时,还会调用对应的析构函数
二、指针与引用比较
1、指针与引用概念的不同
指针:
它是存放地址的一个变量,在逻辑上它是独立的。指针是可以被改变的,包括其所包含的地址的改变和其指向的内存中保存的数据的改变。
引用:
是地址的别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须一开始就被初始化,而且引用不能改变,自始至终只能依附于一个变量。
2、传指针与传引用的区别
传指针:
传址的本质是传值,被调函数的形参作为被调函数的局部变量处理,形参保存实参传递进来的值。
传引用:
引用是变量的别名,传引用的原理还是传指针,传引用的时候实际上是拷贝了实参的地址,被调函数对形参进行修改时,主调函数传进来的变量也会发生变化。
3、从编译器角度理解指针与引用的不同
程序在编译时分别将指针与引用添加到符号表上,在符号表上记录的是变量名 及变量对应的地址。指针变量在符号表上对应的地址值为指针变量的地址,而引用在符号表上对应的地址值为引用对象的地址。符号表在生成之后不会发生改变,因此,指针变量中保存的地址值可以改变,即可以指向另外一块内存地址,引用在符号表上对应的地址值为引用对象的地址,因此,引用在初始化之后就不能改变。
4、指针与引用的相同点与不同点
4.1、相同点
两者都是地址的概念,指针变量拥有自己的内存,可以在指针变量中保存另外一块内存空间的地址;而引用是某块内存的别名。
4.2、不同点
- 指针是一个实体,引用是地址的别名。
- 如果定义一个应用,在定义时一定要进行初始化,不然编译时会出错,而且引用在初始化之后不能改变;但是指针变量中保存的地址可以发生改变。
- 引用不能为空,但是指针可以为空。
- 使用"sizeof 引用"得到的是引用对象的大小;而使用"sizeof 指针"得到的是指针变量的大小。
- 指针有指针常量与常量指针,引用只有常引用没有引用常量。
5、常指针与指针常量
指针(*)与常量(const)谁在前先读谁,例如:
int main(){int a = 10;int b = 20;int const *p1 = &a; //const在前,定义为常指针int * const p2 = &b; //*在前,定义为指针常量return 0;
}
常指针:
指针指向的是常量,不能通过指针改变指向的变量的值,但是指针保存的地址可以改变。
指针常量:
指针是常量,不能改变指针保存的地址,但是可以改变指针指向的变量。