编程语言
首页 > 编程语言> > C++知识点打结(二)

C++知识点打结(二)

作者:互联网

C++知识点打结(二)

11. 多继承

含有纯虚函数的类是抽象类,不能实例化

在多继承中,派生类和被继承的第一个基类的地址相同,和第二个基类的地址不同

12. 内存分配

13. 枚举

enum color {red,yellow=2,blue,white,black} 

如果yellow不赋值为2,则red应为0,后面的元素值依次递加,依次为 0 1 2 3 4,但是现在yellow=2,故red=0,yellow后元素依次在2的基础上递加,结果为 0 2 3 4 5

14. fopen

fopen存在下面几种模式:

15. 32位机器输出

32位机器上,以下代码的输出是

char c = -1;
int i0 = c;
int i1 = (unsigned char)c;
printf("%d, %d\n", i0, i1);

char类型有符号,所以-1可以表示,uchar类型无符号(范围是0-255),-1是1000 0001,转换成补码是1111 1111,uchar无符号位,所以最高位的1也计算到值里,为1+2+4+…+128=255

16. 转义字符

转移字符以\或者\x开头,以\开头(\ddd)表示八进制,以\x开头(\xdd)表示十六进制。(d表示数字)
\0oo: 八进制值(oo必须是有效的八进制数,即每个o可表示0~7中的一个数)

\xhh: 十六进制值(hh必须是有效的十六进制数,即每个h可表示0~f中的一个数)

转义字符以\开始,如果是\x(注意是小写,C语言是区分大小写的)开头,后面接16进制数,如果以\开头,后面接八进制数。

转移字符表示的数据范围有限,因此对\x开头的 ,只能是\xxx(后面两位表数据)这种格式的,意思是只能接两位数据,最大值为\x7f

对\开头的,后面可以接三位数据,即\xxx(后三位均为数),最大值为\177

17. 预算符优先级

运算符优先级:!> 算术运算符 > 关系运算符 > (&& ||)> 条件运算符> 赋值运算符 > 逗号运算符

18. Const

const的左边,则指针指向的变量的值不可直接通过指针改变(可以通过其他途径改变);在的右边,则指针的指向不可变。简记为"左定值,右定向"。

19. 预处理

#define 定义一个预处理宏
#undef 取消宏的定义
#if 编译预处理中的条件命令,相当于C语法中的if语句
#ifdef 判断某个宏是否被定义,若已定义,执行随后的语句
#ifndef 与#ifdef相反,判断某个宏是否未被定义
#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if(扩展条件)
#else 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else(扩展条件)
#endif #if, #ifdef, #ifndef这些条件命令的结束标志.
defined  与#if, #elif配合使用,判断某个宏是否被定义

20. Fork进程拷贝

	 for (int i = 0; i < 2; i++)
	 {
		 fork();
		 print("-\n");
	 }

会打印6个“-”。

fork()函数是通过系统调用实现进程的拷贝。

标签:知识点,存储,文件,打结,C++,运算符,以读,ifdef,打开
来源: https://blog.csdn.net/moneymyone/article/details/118438674