c/c++面试基础总结

转自:github.com/huihut/interview

然后加上了自己的一些表达和理解

C/C++

const

作用:一般在程序编写中,尽量多的使用const关键字,以及使用const替换#define(effective c++ 第2,3条)

1).修饰变量,代表了该变量不可以被修改,也就是说它是个常量。 

2).修饰指针,分为指向常量的指针和指针常量,这个在c++primer好像是什么顶层const什么的,其实就是分为指针指向的变量是常量和指针变量本身是个常量。 

3).常量引用,经常用于形参类型,既避免了拷贝,又避免了函数原值的修改。注:一般来说,如果形参是普通类型,函数在运行时,会对实参进行拷贝,然后在函数中运行,此时不会改变实参的值。但是,当我们传入的参数是指针类型或者引用类型,这时,拷贝进去的是指针和引用,我们通过指针和引用,能够对原值进行修改。如果使用常量引用,就可以避免拷贝,又避免对原值的修改。

4).修饰成员函数,代表该成员函数不能修改成员变量。

使用:略

static:

作用:

1).修饰普通变量,修改了遍历的存储区域和生命周期,是的变量存储在静态区,在main函数运行前就分配了空间,如果有初始值就用初始值初始化这个变量,如果没有就会对其进行默认初始化

2).修改普通函数,表明函数的作用范围,仅在定义该函数的文件内才能被使用。在多人项目开发时,为了避免他人命名函数重名,可以将函数定义为static

3).修饰成员变量,使得所有对象都只保存一个该变量,而且不需要生成对象,通过类名就能直接访问该成员

4).修饰成员函数,修饰成员函数使得不需要生成对象就可以访问该函数,但是在static函数内不能访问非静态成员

this指针:

1).this指针被隐含地声明为:ClassName *const this,这也就意味着,this指针本身是不能被赋值的

2).this是个右值,所以不能&this

3).一些显式使用this的场景:这个自己体会吧。其实你甚至可以一直显式的使用this

inline内联函数:

特征

相当于把内联函数里面的内容写在调用内联函数处;

相当于不用执行进入函数的步骤,直接执行函数体;

相当于宏,却比宏多了类型检查,真正具有函数特性;

不能包含循环、递归、switch等复杂操作;

在类声明中定义的函数,除了虚函数的其他函数都会自动隐式地当成内联函数;

猜你喜欢

转载自blog.csdn.net/qq_23905237/article/details/88233112