C++面试常见概念2️⃣--指针引用、const汇总总结

    xiaoxiao2022-07-07  232

    1,指针引用的区别: 首先最根本的,指针是地址,引用是别名。 1)在使用上,

    指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。也就是说在赋值后,指针可以被重新赋值,即指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变(非const的情况下)。指针可以指向空值,但是引用不可以它初始化的时候就必须指向一个已经存在的对象。指针主要用来保存指向对象地址,引用主要用于函数参数和返回值。

    2)在内存分配上,

    会为指针变量分配内存区域,而不为引用分配内存区域。也就是说在编译的时候指针添加到符号表上的是指针变量,而引用添加到符号表上的是其引用对象的地址。

    2,const 1)const与变量:

    从右向左来第一个变量类型;const所修饰的是 出现在const本身左边的 声明类型;如果左边没有声明类型,则考虑右边。

    2)const与函数:

    当const在函数名前面的时候修饰的是函数返回值; 如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const修饰没有任何价值; 而如果给以“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const修饰的同类型指针。在函数名后面表示是常成员函数(一个函数名字后有const,这个函数必定是成员函数,也就是说普通函数后面不能有const修饰)const成员函数不能修改类中的成员变量,只读不写。类的const对象只能调用类中的const成员函数;类的非const对象可以调用const成员函数和非const成员函数。(这是因为const对象和const成员函数this指针的类型都是一样const的)
    最新回复(0)