C++面试题整理之一
来源:互联网 发布:mac连蓝牙耳机 编辑:程序博客网 时间:2024/04/20 23:34
1. 解释#ifdef
#ifdef是条件指示符,用来判断某个预处理器常量是否已被定义,如果该预处理器常量被定义,#ifdef后面的代码才会被编译。#ifdef的一个主要用途就是防止头文件重复处理。
2. #define一个宏,比较两个数的大小,不能使用大于、小于和if语句
3. staic的作用
1)static局部变量:内存分配在全局数据区。执行到声明处时初始化,下次函数调用不再初始化,值维持上次的值。如果没有显示初始化,自动初始化为0. 作用域为局部作用域。
2)static全局变量:内存分配在全局数据区。如果没有显示初始化,自动初始化为0. 只在声明它的文件内可见。
3) static函数:只在声明它的文件内可见。
4)static成员变量:属于整个类,类的所有对象只有一份拷贝。内存分配在全局数据区。
5)static成员函数:属于整个类,不接收this指针,只能访问statci成员变量和static成员函数。
4. const的作用
定义常量。修饰函数参数和返回值。修饰函数定义体。被const修饰,可以得到强制保护,预防意外修改,提高程序健壮性。
1)const修饰函数参数
- const只修饰输入参数,输出参数不需要const。
- 修饰指针传递的参数:防止意外修改指针指向的内容。对于值传递的参数,函数会自动产生临时变量复制该参数,不需要const修饰。
- 修饰自定义类型引用传递的参数:自定义类型引用传递,不会产生临时对象的构造、复制和析构,提高了效率。加上const修饰,防止修改该参数。
2)const修饰函数返回值
- 对于值传递的函数返回值,函数会自动产生临时变量复制该参数,不需要const修饰。
- 修饰指针传递的函数返回值:该返回值的内容不能被修改,且只能被赋值给被const修饰的同类型指针。
- 修饰自定义类型引用传递的返回值:一般用在类的赋值函数中。
3)const修饰函数定义体: 任何不修改数据成员的函数都应该声明为const类型。
5. 比较sizeof和strlen
1) sizeof是操作符,返回一个对象或类型名的字节长度,返回值类型为size_t. strlen是一个函数,计算给定字符串的长度,只能用char*做参数,且必须是‘\0’结尾的。
2)sizeof操作符是编译时刻计算,可看做常量表达式。strlen是运行时刻计算的。
- C++面试题整理之一
- 【C#】面试题整理
- 【C#】面试题整理
- C面试题整理
- ASP.NET经典面试题 整理之一
- Android面试笔试题整理之一
- Android面试笔试题整理之一
- Java Web面试笔试题整理之一(JSP/Servlet)
- 面试题整理之一:HashMap与HashTable与equals
- C/C++面试题(整理)
- 整理的C、C++面试题
- 《C语言深度解剖》面试题整理
- 《C语言深度剖析》面试题整理
- C/C++常见面试题整理
- 微软面试题之一
- Java面试题之一
- 面试题之一
- java面试题之一
- MAC 解决端口占用问题
- vim 复制粘贴相关
- QPainter绘制 保存图片
- 收录的一些不错的网址
- iOS学习-删除storyboard中viewController黑屏问题
- C++面试题整理之一
- Kafka原理详解
- View 动画使用详解
- Java IO流-BufferedInputStream和BufferedOutputStream
- 走上未知路
- 使用SharedPreferences来保存用户登录帐号密码
- netty源码学习第三章:ByteBuf
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- ButterKnife使用详解