C++ 牛客网做题笔记【900题总结】
来源:互联网 发布:从底层看java中的接口 编辑:程序博客网 时间:2024/06/07 03:37
1:Maxfd是三个套接字描述符最大数字加1
2:&& 和|| 都有截断功能,&&左边为假,右边表达式不判断,||左边为真,右边的表达式不执行
3:a++是一个表达式,不是变量,所以不能当左值使用,a++ = a是错误的
4:空类的大小为1,这个1是被编译器插入的一个char字符,使得这个class的不同实例在内存中是独一无二的地址,这个char用于标识类的不同对象,否则每个对象的大小都是0,这就无法区分各个对象
5:free一个指针之后,指针所指向的内存被释放,但是指针仍指向这块被释放的内存,被称为野指针,再往这个指针赋值不能保证这个数据的安全,所以会产生错误
6:词法分析器用于识别单词
7:a-z:97-122 A-Z:65-90 0-9:48-57;小写字母>大写字母>数字的ASCII码
8:十进制-25,原码:1001 1001 补码:1110 0111 十六进制表示:E7H
9:多次释放一个已经释放过的指针,内存被重复释放,导致一些不可预期的异常
10:“\t” "\b" 转义字符,退格 "\023" 八进制,不能超过9啊,不要忘了~ "\xae" 十六进制,不能超过f
11:类的下行转换必须是显示的,因为基类到派生类不知道要加什么,派生类到基类的转换可以是隐式的,直接去除派生类自有的部分,operate除了可以表示函数重载运算符,还可以进行类之间的转换,拷贝构造函数可以进行类的隐式转换
12:编译器在为类对象分配栈空间时,会先检查类的析构函数的访问性,只要是非静态的成员函数,编译器都会进行检查,如果类的析构函数是私有的,则编译器不会在栈空间上为类对象分配内存空间,因为无法回收栈上的内存,将析构函数定义为私有,只能通过new来进行创建对象。new的话会调用构造函数进行初始化,所以构造函数不能为私有,此时需要destroy
13:运算符重载为成员函数时,this指针作为左操作的对象,参数列表个数可以少一个;重载为友元函数时,参数个数需一致,二元运算符就得两个参数;
14:我草,做题要细心啊~答非所问是最气的~
15:循环是否已经跳出?需要注意,while(a+b>0){a++;b--;},这尼玛一次完不了啊~
16:register,寄存器变量,速度比内存快很多,旧编译器需要手动将调用次数多的变量定义为register,现在的编译器一般都会自动将调用次数多的变量放入寄存器中;extern,声明为外部变量,在函数外部定义变量;static,变量在整个作用域内是全局变量
17:const变量,在编译阶段编译器会直接使用常数替换掉对该变量的引用
18:strlen()求字符串的长度,但是若字符串由字符数组得到,由于字符数组中赋值的是字符的ASCII值,ASCII值为0的字符是“\0”也就是结束符,所以这一点需要注意strlen(str) ;str[] = {4,5,3,0,6,8};长度为3
19:二维数组的定义一定要有列数,因为编译器需要靠列数来寻址
20:vector中访问数据,两种方法:vector::at(),此方法为首选,因为它进行了边界检查,如果访问超过了范围,将抛出异常;vector::operator[],不做下标检查,超出范围造成的结果就是函数行为未定义
- C笔记总结
- c标签总结笔记
- C笔记小总结
- C++ 牛客网做题笔记【900题总结】
- C语言学习笔记总结
- object -C 笔记之总结
- 设计模式(c++)笔记 总结
- c语言学习笔记总结
- c语言学习笔记总结
- C++(笔记)输入输出总结
- C语言总结-个人学习笔记
- C#Socket同步异步通讯总结笔记
- C#Socket同步异步通讯总结笔记
- 【C语言学习笔记】qsort函数总结
- C语言循环结构总结笔记
- C/C++学习笔记9:sizeof总结
- C语言笔记之警告的总结
- C++ 牛客网做题笔记【300题总结】
- cookie是怎么被盗的
- 递归递推总结
- Number Sequence HDU
- 使用一个消息队列作为计数信号量
- 接口中的两次请求
- C++ 牛客网做题笔记【900题总结】
- [BZOJ2534]Uva10829L-gap字符串(后缀数组+st表)
- 骄傲的代价(大数处理)
- Android 6.0+ 动态权限 一种清爽的封装过程(以及多个权限的处理)
- 购物车
- Android 中右上角菜单创建(Menu)
- 二叉树最大深度(Java)
- ElasticSearch初步认识及安装
- python3.5 包含文件,引用函数