您的位置:首页 > 编程语言 > C语言/C++

C++ 牛客网做题笔记【1200题总结】

2017-04-23 09:07 281 查看
1:函数指针的使用方法:

原型:fun (char *);  函数指针  (*f) (char *);

三种调用方式都是正确的:主要看a的类型

1:f(&a);

2:(*f)(a);

3:func(a);

2:不是new动态创建的指针,显示调用delete是错误的,否则相当于重复调用了析构函数~

3:死代码的含义:永远不会被执行到的代码,而不是不执行的代码,while(false){}

4:函数的内联可以避免压栈和出栈的开销;返回类型不能作为函数重载的依据,因为调用时需要确认类型信息,返回类型不被编译器考虑在内

5:Python是脚本语言,且为动态语言:运行时可以改变结构,而JAVA、C、Object C 不属于动态语言

6:指向常量字符串的指针,其自身指向可以改变,但是不能通过本指针修改指向的字符串;float型变量判断是否等于某个值,abs(a-b)<epsilon,误差范围,否则可能为无限循环

7:Java在数组溢出时,也会报出异常;Java 不完全算是编译型语言,字节码文件运行时是解释执行的,C++算是完全的编译型语言

8:任何引用都必须指向一个实例,但是引用所指向的实例可能会是无效的,因为引用的是局部对象:无效是可能的;enum不是基本类型

9:关联容器的元素是自动按"key"升序排序的,所以关联式容器都是排好序的,包括set

10:编译器合成的拷贝构造函数为public,作用是将一个已知对象的数据成员拷贝给正在创建的另一个同类的对象

11:十六进制0x和0X都是对的,指数表示的e后面必须有一个整数;C语言中数组传参可以是值传递、引用传递和地址传递

12:char a= "\82"; 首先想到转义字符,但是明显有个8,不是八进制的转义字符,所以会将最后一个字符赋值给a,也就是2

13:c语言中的struct(结构体)中不可以有函数,而C++中的struct和class一样,可以由构造以及析构函数

14:数组大小也可以在运行时再确定:动态数组int n; cin>> n; int *p = new int
;

15:math.ceil(a)返回的是不小于a的最小整数,ceil(11.5)返回12,ceil(-11.5)返回-11

math.floor(a)返回的是不大于a的最大整数,ceil(11.5)返回11,ceil(-11.5)返回-12

math.round(a)返回的是往大数方向的四舍五入,ceil(11.5)返回12,ceil(-11.5)返回-11

16:.运算符:类成员访问运算符,->运算符:指针对象访问成员时用的访问运算符,*p.a由于.的运算符高,所以使用方法不对!

17:collection接口:List、Set、Queue、sorted_set

Map接口:HashMap、HashTable、TreeTable、IdentityHashTable、WeakHashTable

18:data[0]表示柔性数组,是为了减少内存碎片保持属于连续性,连续的地址并非是独立的地址空间,为了可移植性,也可以写成data[1]或data[],因为有些编译器不支持0数组

19:C语言本身是没有输入输出语句的,printf和scanf都是库实现的

20:C#的抽象类用abstract修饰;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息