目录
- 一、 C语言
- 二、 C++
-
- 2.1 函数重载:
- 2.2 类和对象
-
- 2.2.1 创建对象
- 2.2.2 C++类的成员函数
- 2.2.3 C++类成员的访问权限以及类的封装
- 2.2.4 C++ 构造函数
- 2.2.5 C++构造函数初始化列表
- 2.2.6 C++析构函数
- 2.2.7 C++ this指针详解
- 2.2.8 C++ static静态成员变量详解
- 2.2.9 C++ static静态成员函数详解
- 2.2.10 const成员变量和成员函数(常成员函数)
- 2.2.11 C++ const对象(常对象)
- 2.2.12 C++友元函数和友元类(C++ friend关键字)
- 2.2.13 C++ class和struct到底有什么区别
- 2.2.14 C++ string详解,C++字符串详解
- 2.3 C++ 引用
- 2.4 继承与派生
- 2.5 C++多态与虚函数
- 2.6 模板
- 三、C/C++用到的函数笔记
- 四 、Socket
-
- 4.0 socket是什么?套接字是什么?
- 4.1 套接字的类型
- 4.2 OSI网络七层模型
- 4.3 TCP/IP协议族
- 4.4 IP、MAC和端口号
- 4.5 socket实现helloworld
- 4.6 socket()函数用法详解:创建套接字
- 4.7 bind()和connect()函数:绑定套接字并建立连接
- 4.8 listen()和accept()函数:让套接字进入监听状态并响应客户端请求
- 4.9 send()/recv()和write()/read():发送数据和接收数据
- 4.10 socket缓冲区以及阻塞模式
- 4.11 TCP协议的粘包问题(数据的无边界性)
- 4.12 图解TCP数据报结构以及三次握手(非常详细)
- 4.13 TCP数据传输过程
- 4.14 TCP四次握手断开连接(四次挥手)
- 4.15 再谈TCP和UDP的优缺点
- 4.16 基于UDP的服务器端和客户端
- 五、STL
一、 C语言
1.0 总结
1.0.1 数组指针和指针数组
对指针数组和数组指针的概念,相信很多C程序员都会混淆。下面通过两个简单的语句来分析一下二者之间的区别,示例代码如下所示:
int *p1[5];
int (*p2)[5];
首先,对于语句int*p1[5]
,因为[]
的优先级要比*
要高,所以 p1
先与[]
结合,构成一个数组的定义,数组名为 p1,而int*
修饰的是数组的内容,即数组的每个元素。也就是说,该数组包含 5 个指向 int 类型数据的指针,如图 1 所示,因此,它是一个指针数组。
其次,对于语句int(*p2)[5]
,()
的优先级比[]
高,*
号和 p2 构成一个指针的定义,指针变量名为 p2,而 int 修饰的是数组的内容,即数组的每个元素。也就是说,p2 是一个指针,它指向一个包含 5 个 int 类型数据的数组,如图 2 所示。很显然,它是一个数组指针,数组在这里并没有名字,是个匿名数组。