1、指针和引用的区别:
引用是给另一个变量的起名,所以引用不会分配内存空间。指针是一个实体,需要分配内存空间。
引用在定义的时候必须进行初始化,并且不能被改变。指针在定义的时候不需要进行初始化。
有多级指针但是没有多级引用
指针和引用的自增运算结果不一样。指针运算加1是地址加1,而引用运算加1是值加1.
sizeof求引用是指引用的对象(变量)的大小,而sizeof指针的大小是指指针本省的大小。
引用访问一个变量是直接的访问。而指针访问一个变量是间接访问。
2、值传递和引用传递的区别?
值传递的方法是被调用时传递进来的参数是一个副本(拷贝),而不是传递进来参数的本省。换句话说值传递参数的修改不会影响到调用方传递的参数的对象。
而引用传递的方法是被调用时传递进来的参数是一个引用,换句话说传递进来的参数指向调用方传递的参数的本省。对引用传递的参数的修改会影响调用方传递的参数对象。
3、TCP的三次握手是如何实现的?
首先,第一步:客户端给服务器发送一个syn包到服务器,并进入sys_send状态,等待服务器的再次确认。
第二步:服务器接收到sys包的时候,必须确认客户的sys(ack=j+1),同时自己也发送一个syn=k的包,即sys+ack包,此时服务器进入syn_recv状态。
第三次握手:客户端接收到syn+ack包,向服务器发送确认包。ack=k+1
此时发送包完毕。即客户端与服务器建立连接。
4、TCP的四次挥手
首先客户端和服务器之间通信断开时,客户端会给主机发送一个FIN信号,然后于此同时给一个序列号seq=u。当服务器收到是变为FIN_WAIT1状态。然后服务器这段给应答,ACK=1,ack=u+1,seq=v;再次给一个关闭信号回应变为FIN_WAIT2。ack=v+1,ACK=1,FIN=1,seq=w;最后客户端给服务器一个回应。ACK=1,seq=u+1,ack=u+1;
5、RS485
RS485采用的是差分信号负逻辑,RS485采用的有四线制和二线制两种。四线制只能实现点对点,所以现在多用的是二线制。这种接线方式最多可以挂接32个节点。 在RS485通信网络中一般采用的是主从通信。
6、socket编程
**socket又叫套接字,他是计算机之间的通信方式的一种约定。通过socket这种约定,一台计算机可以接受其他计算机的数据。
socket的典型应用就是web服务器与浏览器,浏览器获取用户输入URL,向服务器发起请求。服务器分析接收到的URL,将对应的网页内容返回给浏览器。浏览器在经过渲染将文字和图片、视频等元素呈现在用户面前。
**数据传输方式常用的有两种:SOCK_STREAM和SOCK_DGRAM。
(1)SOCK_STREAM表示面向连接的数据传输方式。数据可以准确无误的达到另一台计算机。如果损坏和丢失,可以重新发送。但是效率相对较慢。