所在的位置: C++ >> C++优势 >> c面试题c基础

c面试题c基础

白癜风可以抹药吗 http://baidianfeng.39.net/a_bdfnzhm/141130/4527119.html

c++面试题(c++基础)

c++面试中c++基础和数据结构与算法很重要,c++语法特别复杂,我先写一部分c++的基础问题,后面会持续更新,这些都是我面试时遇到的有价值的问题

1.变量

1.1c++中左值和右值是啥

答:左值是可以取地址的变量,可以对左值赋值,取地址,右值没有地址,寄存于寄存器中,执行结束以后就消亡了。

1.2全局变量和局部变量在内存中是怎样存放的?两者之间有何区别

答:全局变量储存在静态数据库,局部变量在堆栈。全局变量在程序开始执行时分配存储区,程序执行完毕释放,在程序执行过程中全局变量始终占据固定的存储单元;

局部变量是动态分配存储空间的,在调用变量所在函数时系统会给函数的局部变量分配存储空间,在函数调用结束时就自动释放这些存储空间。

1.3什么是“引用”?申明和使用“引用”要注意哪些问题

答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相

同。申明一个引用的时候,一定要对其进行初始化赋值。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。

1.4变量的声明和定义有什么区别

答:为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。

2.指针

2.1引用与指针有什么区别

答:(1)引用必须被初始化,指针可以不用初始化;

(2)引用初始化以后就不能被改变,而指针可以改变所指向的对象;

(3)不存在指向空值的引用,而指针可以指向一个空值。

(4)因为引用不能指向空值,这意味着使用引用之前不需要测试其合法性;而指针则需要经常进行测试。所以使用引用的代码效率要比使用指针的效率高,同时也使引用具有更高的安全性。

2.2简述一下智能指针

答:


转载请注明:http://www.aierlanlan.com/grrz/443.html