牛客C++专项试题笔记——0614

来源:互联网 发布:恒温花洒 知乎 编辑:程序博客网 时间:2024/05/16 12:49

1、read是unix下的系统函数;fread(fgetc、fopen)才是C的库函数(stdio.h)。

2、C的转义字符:

“\”加数字(8进制数字)以及‘\0’加数字 都表示8进制转义字符;

‘\x’ 表示16进制转义字符;

‘\’加字符表示普通的转义字符(\n 换行等)。

3、if((x=y) && (x != 0))  x +=y是对的。

4、C++中,只有参数个数、类型以及参数是const的引用(指针)可以作为重载判断,返回值类型不可以作为重载判断。(C++Primer  P208)

5、C++中运算符的优先级:*(解引用)和++优先级一样,右结合性。

     参考博客:http://blog.csdn.net/nicky_zs/article/details/4053146

6、函数内定义的数组是局部变量,在函数返回后内存被释放,无法通过指针访问:

   int *f() { int a[3] = {1, 2, 3}; return a;}是错误的。
7、exec((vl,v2),(v3,v4),v5,v6)等价于exec(v2,v4,v5,v6)。
8、类的常成员函数的定义:void print()const,在函数形参列表的右括号后面加上const。
9、构造函数的执行次序如下(析构函数相反):  调用基类构造函数,调用顺序按照他们的继承时声明的顺序。  调用内嵌成员对象的构造函数,调用顺序按照他们在类中声明的顺序。  派生类的构造函数体中的内容。
10、构造函数可以重载(有参数)不可以声明为虚函数(虚函数是动态绑定,是在构造函数之后);
    而析构函数不可以重载(无参数),有虚函数的情况下必须声明为虚函数。
11、#pragma once避免头文件重复定义,作用类似于#ifndef,#define,#endif。
    区别:#pragma once:优点:不会“撞车”,不用考虑宏名;缺点:如果某个头文件有多份拷贝,本方法                       不能保证他们不被重复包含,同时不支持跨平台;
          #ifndef:优点:可移植性强;缺点:不同头文件的宏名会“撞车”。

原创粉丝点击