一些编程的基础

const的五种用法

1、const修饰的变量
2、指针常量 *const
3、常量指针 const *
4、常量数据成员
5、常量成员函数

const和#define相比的优点
1、const常量有数据类型,编译器可以对其进行类型进行安全检查
2、const常量可以进行调试
3、const可以节省空间,避免不必要的内存分配,提高运行效率。

静态static的五种用法

1、静态全局变量
2、静态局部变量
3、静态全局函数
4、静态数据成员
5、静态成员函数

普通全局变量和静态static全局变量的区别

1、生存周期相同,内存都是在静态全局区
2、普通的全局变量没有static修饰,静态全局变量有static修饰
3、作用域(即作用的范围)不同,普通全局变量的作用域为项目作用域,静态全局变量为文件作用域。

运算符的优先级

单目>双目>三目
优先级从高到低依次为:
算术运算符、右移左移运算符、关系运算符、位运算符、逻辑运算符、条件运算符、赋值运算符、逗号

前置++返回到是this,后置++返回的是值拷贝。所有后置优先级高于前置,但是前置的效率比后置高。

位运算的底层都是以二进制的补码进行运算

位运算名 具体 原则和公式
按位于 a&b 同1为1,否则为0
按位或 a丨b 有1为1,否则为0
按位异或 a^b 不同为1,否则为0,可以不使用第三方变量交换两值
按位非 ~a 全部取反,包括符号位。公式:~x=-(x+1)
左移 a<<n a左移n位,右边补0,公式:a*(2的n次方)
右移 a>>n a右移n位,左边补符号位。公式:当a为正数时:2的n次方分之a(a/(2^n))。为负时:2的n次方分之a-1

浅拷贝和深拷贝

浅拷贝只是复制指向某个对象的指针,而不是复制对象本身,新旧对象共用一段内存。但是深拷贝会另外创建一个一模一样的对象,新对象和原对象不共享内存,修改新对象不会改到原来的对象。

TCP和UDP浅显理解
1、TCP面向 连接,UDP是无连接的,即发送数据之前不需要建立连接。
2、TCP提供可靠的服务,保证可靠的交付。UDP尽最大努力交付,不保证可靠。
3、TCP面向字节流,实际上是TCP把数据看成一串无结构的字节流;UDP是面向报文的。
4、TCP支持一对一,点对点。UDP支持一对一,一对多,多对多和多对一点交互通信。

猜你喜欢

转载自blog.csdn.net/lml_w/article/details/127932652