【Linux/C/C++】面试题总结

1.static关键字的作用?

答:在C语言中,局部变量不会在诞生时被编译器自动初始化,且生命周期终止于该变量所在的函数结束时。通过使用static关键字修饰局部变量,可以使编译器自动为其赋初始值0,且该变量的生命周期将被延长,在局部变量所在的函数结束时也不会结束。

在C++中,static修饰类的成员变量时,该变量属于该类而不属于某一个类的对象,相当于实现了共享,可以通过该类加与运算符的方式访问,或是通过该类的任一对象访问另外,这种类的静态成员变量只能在类的内部声明,在类的外部初始化;当修饰类的成员函数时,该成员函数将变为共享的方法,在类外任何地方均可以通过类名加与运算符调用。

2.const关键字的作用?

答:在C语言中,当const修饰局部变量时,该变量之后便不可修改,需要在初始化的时候赋值;当const修饰指针时,便产生了“常量指针与指针常量”(详见释义)。

在C++中,当const修饰类的成员变量时,该变量不可修改且只能在构造中通过初始化列表的方式进行初始化;当const修饰类的成员函数时,该函数不可调用非const修饰的函数,但是非const修饰的函数可以调用const修饰的成员函数。

3.共享内存为什么是最高效的进程间通信方式?

答:每个进程都有3G的用户空间以及1G的内核空间,其它的通信方式在系统内核空间内开辟一片空间,以拷贝的方式在不同的进程的用户空间与内核空间之间传递信息;而共享内存以映射的方式在不同的用户空间与内核空间之间传递信息,相当于直接使用同一片内存空间,故而比其它的通信方式高效。

你可能感兴趣的:(c++,开发语言,linux,c语言)