C++面试题整理(一)

extern关键字的作用

一般用这个表示这个变量在别的文件里,提示编译器去别的文件里找这个函数或者变量
1.extern C的作用?用法?

static关键字的作用

1.static修饰局部变量

static修饰的局部变量存储在静态区,在main函数之前初始化,程序退出时销毁。一个典型的例子:
用于函数调用次数计数

void function(){
    static int count = 0;
    cout << "call function" << count << "times" << endl;
}
int main(){
    for(int i=0;i<5;i++) {
        function();
    }
    return 0;
}

2.static修饰全局变量

因为全局变量本来就在静态区,所以这个地方表示变量只能被包含该定义的文件内使用

3.static修饰函数

使得函数只能在包含该函数定义的文件中被调用,所以static函数的声明和定义应该在一个文件内

4.在C++中的作用

可以实现不同对象之间的数据共享

const 关键字的作用

1.const修饰全局变量,存储在全局变量区
2.const修饰局部变量,存储在栈区
3.const修饰指针,int * const;
4.const修饰指针指向的对象, const int *;
5.const修饰引用做形参;修饰函数参数void func(const A& a)比void func(A a)要好,这样就不用拷贝了
6.const修饰成员变量,必须在构造函数列表中初始化;
7.const修饰成员函数,说明该函数不应该修改对象的非静态成员,指针所指的非成员对象值可能会被改变。(相当于是修饰this指针)
9.const修饰函数返回值:如果返回的是指针,加上const后,函数的返回内容不能被修改?????如果是指传递,由于函数会把值复制到外部存储单元中取,所以加const没有意义。
10.const修饰对象,const对象只能访问const成员函数,非const对象可以访问任意的成员函数。
11.const和#define的区别:
const常量有数据类型,宏常量没有。编译器可以对前者进行数据类型检查,后者只是字符替换,可能会产生意料不到的错误;c++中const常量可以完全取代宏常量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值