程序员笔试知识点总结之C++
来源:互联网 发布:佳为软件 编辑:程序博客网 时间:2024/06/06 06:58
2.预处理、const、sizeof
2.1宏定义
2.2const
1)const在*前还是在*后的问题
const int * a = &b;
const在*之前,修饰指针所指向的变量,即指针指向的内容为常量,不允许对内容进行直接修改
int b =100;
const int * a = &b;
*a = 600; //错误
a是一个仓库管理员,他所进入的仓库(*a)是他没有权限动的,里边有什么就是什么。
如果要改变,可以通过改变b的值 b=200,或者将指针指向别处 int c = 200; a = &c;
const在*后边,修饰指针本身是常量,不能将其指向其他地方,必须初始化
int b=500,c=300;
int * const a; //错误,没有初始化
int * const a = &c; //正确
* a = 600;// 正确
a++; //错误,
a是一个仓库管理员的话,他只能进入某一个指定的仓库,不能进入其他的仓库。
如果const前后都有*的话,表示指针和内容都是常量。
2)const成员函数
把不改变数据成员的函数后加上const关键词标识,提高程序的可读性和可靠性,如果一定要改变,则用mutable修饰成员变量,
如果const在成员函数声明前边,表示函数的返回值是一个常量。
3)和宏定义相比
const有数据类型,宏定义没有,编译器对const有进行类型安全检查,对宏定义只是简单的替换。
2.3sizeof
sizeof返回的是数据类型的大小,int float 4个字节,char 1个字节,指针类型4个字节,short 2个字节,double 8个字节 bool 1个字节
计算结构体的时候需要考虑对齐,是最长数据元素的整数倍,加通过pack预处理指令可以禁止对齐调整,但一般不这样做,这样会降低程序的性能,
class A
{
private:
bool a;
int b;
bool c;
}
A中 的元素所占内存分别为 2 4 2 ,依据最大元素长度补齐, sizeof(A)的大小为12
class B
{
private:
int a;
bool b;
bool c;
}
B中的元素所占内存分别为 4 2 2,依据最大元素长度补齐,sizeof(B)的大小为8
char* ss = "0123456789";
sizeof(ss)的结果为4,指向字符串的字符指针,sizeof(*ss)的大小为1,*ss是第一个字符。
char ss[] = "0123456789";
sizeof(ss)的大小为11,ss是数组,计算到"\0",sizeof(*ss)的大小为1,第一个字符。
char ss[100]="0123456789";
sizeof(ss)的大小为100,strlen(ss)的大小为10,strlen的的参数只能是chaar*型的,结尾必须是“\0”
数组做形参时传递的不是数组,是指针,这时候sizeof就退化为指针的大小。
sizeof 括号内的内容是不被编译的,直接被替换为类型。
int a=8;sizeof(a=6); 执行结束后a的值还是8。
空类、多重继承空类的大小都是1,虚继承涉及虚指针,所以大小为4。
2.4内联函数
内敛函数要做参数类型检查,一般使用情况如下:
(1)一个函数被反复不断的调用;
(2)函数只有简单的几行,且不包括,for,while,switch
内联关键词inline必须与函数定义体放在一起才能成为内联函数,和函数声明放在一起没用
- 程序员笔试知识点总结之C++
- 程序员笔试知识点整理(C/C++)
- 程序员笔试知识点整理(C/C++)
- 程序员面试笔试知识点总结1
- 程序员面试笔试知识点总结2
- 【笔试面试知识点查缺补漏深入理解之C与C++篇】typedef相关知识点完全总结
- 程序员笔试知识点整理
- 程序员笔试知识点整理
- 程序员笔试知识点整理
- 程序员笔试知识点整理
- 程序员笔试知识点整理
- 程序员笔试知识点整理
- 程序员笔试知识点整理
- 程序员笔试知识点整理
- 程序员笔试知识点整理]
- 程序员笔试知识点整理
- 笔试题:知识点总结
- 【C#】笔试知识点
- javascript 使用FormData实现图片/文件异步上传
- JqGrid 实现将数据按规则插入到指定位置
- jsp获取JDK、系统、服务器信息
- 手机网站使用mip的问题
- 模拟实现C库的atoi和itoa
- 程序员笔试知识点总结之C++
- PTS铂金版横空出世!想做双11?简单!
- 可用于生产环境的php的编译参数列表
- 阻止a标签默认行为的几种简单方法
- 在不同屏幕和设备上创建用户体验设计的8个步骤
- python爬虫爬取女u番号和磁力链接,封面,保存到csv文件
- DBUnit数据库测试
- 机器学习实战_07AdaBoost元算法提高分类性能
- [区块链]注意力经济模型详解