C++ 牛客网做题笔记【400题总结】
2017-04-14 09:26
267 查看
1:free之后的指针,只是释放掉指针所指向的内存,但是该指针仍然指向该内存,所以需要置NULL,告诉系统目标地址可回收
2:无符号数的循环可能会造成死循环,unsigned char 0~255,i++ < = 255 就会造成死循环
3:有些信息在存储时,并不需要占用一个完整的字节,而只需要占用几个或一个二进制位,为了节省内存空间,C语言提供了一种数据结构,称为位域或者位段,将一个字节中的二进制位划分为几个不同的区域,并说明每个位域的位数
int a : 3
int b : 4
int C : 5
a,b,C分别占用了int内的3,4,5位,只占用了12位,而int占四个字节,所以这三个变量只占用了一个int类型的空间,也就是4个字节
4:中间件:是一种独立的系统软件或者服务程序,分布式软件借助这种软件在不同的技术之间共享资源,中间件位于客户机/服务器的操作系统值上,管理计算机资源和网络通讯。相连接的两个软件即使有不同的接口,但是通过中间件相互之间仍能交换信息,通过这种信息传递,应用程序可以工作于多平台或OS环境:位于操作系统之上,应用软件之下
5:基类的私有成员、保护成员是可以被继承的,只是不能访问罢了,所以在计算类的大小时,涉及到类继承,需要注意,另外static不属于任何对象,静态变量存放在全局区。
6:传入二级指针或一级指针的地址才能改变一级指针所指向的内容
7:浮点数的二进制表示法:http://www.cnblogs.com/dolphin0520/archive/2011/10/02/2198280.html
8:当基类构造函数需要外部传递参数才能初始化时,派生类必须显示定义构造函数,为其基类传递参数。
9:逗号运算符的返回值是表达式的最后一个值,(3,4,5)作为int参数时,使用的是5
10:类的赋值构造函数的参数是A的对象,若a = 10,先将10 转化为A对象,调用A(int a) ,再调用赋值构造函数
11:自动变量:只在定义他们的时候才创建,一般不做说明的局部变量均是自动变量,且自动变量也可以用auto做出声明
12:类的静态成员,不属于任何对象,无论拷贝、继承还是实例化都只有一份!
13:sizeof(void) 若void是标记则为1,否则报错 sizeof(void*) 指针为4
14:pwirite是系统调用的函数
15:函数内部定义的数组是临时变量,在函数返回后内存被释放,通过指针无法再访问,但是通过构造函数进行创建对象,在函数返回后,执行析构函数释放内存,注意是函数返回后再执行析构函数,对象作为返回值时,会调用拷贝构造函数生成一个临时对象,返回的也是临时对象的值,所以返回函数内部临时创建的vector是正确的
16:类的静态方法只能访问类的静态成员变量
17:不能被重载的操作符 :: , * . ?: ,必须作为成员函数重载的运算符: = [] () -> new delete
18:静态成员函数没有this,因为不属于任何对象,也就没有存放虚函数表的地方,静态是编译器必须确定的,虚函数是运行时确定的
19:C语言中函数参数的入栈顺序为从右向左,所以func(++i,i++);当i为0时,func(2,0),printf()函数同样遵循此规则
20:int a加上unsignd int b,符号会转变为unsigned,因为unsigned的表示范围更大,b在内存中的补码形式会按照unsigned的形式读取,所以要特别注意其结果~
2:无符号数的循环可能会造成死循环,unsigned char 0~255,i++ < = 255 就会造成死循环
3:有些信息在存储时,并不需要占用一个完整的字节,而只需要占用几个或一个二进制位,为了节省内存空间,C语言提供了一种数据结构,称为位域或者位段,将一个字节中的二进制位划分为几个不同的区域,并说明每个位域的位数
int a : 3
int b : 4
int C : 5
a,b,C分别占用了int内的3,4,5位,只占用了12位,而int占四个字节,所以这三个变量只占用了一个int类型的空间,也就是4个字节
4:中间件:是一种独立的系统软件或者服务程序,分布式软件借助这种软件在不同的技术之间共享资源,中间件位于客户机/服务器的操作系统值上,管理计算机资源和网络通讯。相连接的两个软件即使有不同的接口,但是通过中间件相互之间仍能交换信息,通过这种信息传递,应用程序可以工作于多平台或OS环境:位于操作系统之上,应用软件之下
5:基类的私有成员、保护成员是可以被继承的,只是不能访问罢了,所以在计算类的大小时,涉及到类继承,需要注意,另外static不属于任何对象,静态变量存放在全局区。
6:传入二级指针或一级指针的地址才能改变一级指针所指向的内容
7:浮点数的二进制表示法:http://www.cnblogs.com/dolphin0520/archive/2011/10/02/2198280.html
8:当基类构造函数需要外部传递参数才能初始化时,派生类必须显示定义构造函数,为其基类传递参数。
9:逗号运算符的返回值是表达式的最后一个值,(3,4,5)作为int参数时,使用的是5
10:类的赋值构造函数的参数是A的对象,若a = 10,先将10 转化为A对象,调用A(int a) ,再调用赋值构造函数
11:自动变量:只在定义他们的时候才创建,一般不做说明的局部变量均是自动变量,且自动变量也可以用auto做出声明
12:类的静态成员,不属于任何对象,无论拷贝、继承还是实例化都只有一份!
13:sizeof(void) 若void是标记则为1,否则报错 sizeof(void*) 指针为4
14:pwirite是系统调用的函数
15:函数内部定义的数组是临时变量,在函数返回后内存被释放,通过指针无法再访问,但是通过构造函数进行创建对象,在函数返回后,执行析构函数释放内存,注意是函数返回后再执行析构函数,对象作为返回值时,会调用拷贝构造函数生成一个临时对象,返回的也是临时对象的值,所以返回函数内部临时创建的vector是正确的
16:类的静态方法只能访问类的静态成员变量
17:不能被重载的操作符 :: , * . ?: ,必须作为成员函数重载的运算符: = [] () -> new delete
18:静态成员函数没有this,因为不属于任何对象,也就没有存放虚函数表的地方,静态是编译器必须确定的,虚函数是运行时确定的
19:C语言中函数参数的入栈顺序为从右向左,所以func(++i,i++);当i为0时,func(2,0),printf()函数同样遵循此规则
20:int a加上unsignd int b,符号会转变为unsigned,因为unsigned的表示范围更大,b在内存中的补码形式会按照unsigned的形式读取,所以要特别注意其结果~
相关文章推荐
- C++ 牛客网做题笔记【300题总结】
- C++ 牛客网做题笔记【900题总结】
- C++ 牛客网做题笔记【1000题总结】
- C++ 牛客网做题笔记【700题总结】
- C++ 牛客网做题笔记【1200题总结】
- C++ 牛客网做题笔记【500题总结】
- C++ 牛客网做题笔记【600题总结】
- C++ 牛客网做题笔记【200题总结】
- C++ 牛客网做题笔记【1100题总结】
- C++ 牛客网做题笔记【800题总结】
- C++ 牛客网做题总结
- hdu ---2008做题笔记(c++)
- hdu ---2011做题笔记(c++)
- C++ 总结笔记 <一>
- 7月18号牛客网做题笔记
- C++ 学习笔记(一些新特性总结 2)
- 【C++ 学习笔记】防止头文件二次编译总结
- C++总结笔记(六)排序算法之冒泡排序
- 牛客网做题总结:剑指offer中题目,java版一
- hdu ---2022做题笔记(c++)