C++笔试题解析:函数返回值、引用类型详解

5星 · 超过95%的资源 需积分: 9 21 下载量 29 浏览量 更新于2024-08-02 收藏 71KB DOC 举报
C++公司笔试题汇总 本资源汇总了C++笔试中的一些重要知识点,包括函数返回值、引用、函数参数传递等。这些知识点非常重要,对于C++程序员来说,是必须掌握的。 1. 函数返回值 函数`int func(x)`的返回值是多少?答案是8。思路是将x转化为2进制,然后统计含有的1的个数。这个问题考察了程序员对二进制数的理解和编程能力。 2. 引用 什么是“引用”?引用就是某个目标变量的“别名”,对引用的操作与对变量直接操作效果完全相同。声明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。 引用不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。 3. 引用作为函数参数 将“引用”作为函数参数有哪些特点?特点之一是传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。 使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。 4. 常引用 在什么时候需要使用“常引用”?如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式:`const 类型标识符&引用名=目标变量名;` 例如:`int a; const int& ra = a;`则`ra = 1;`是错误的,而`a = 1;`是正确的。 在函数参数传递中,也可以使用常引用。例如:`void bar(string& s);`那么下面的表达式将是非法的:`bar(foo());`因为`foo()`返回的是一个临时对象,而临时对象不能被绑定到非常引用上。 本资源汇总了C++笔试中的一些重要知识点,对于C++程序员来说,是必须掌握的。