0,‘0’,‘\0’,null的区别

0:int型,表示数字0,ASCII码值为0;

’\0’:char型,表示一个字符串结束的标志,不会显示,也不会单独存在,ASCII码值为0;

null:表示空,一般代表0地址,ASCII码值为0 ;

’0’:char类型,表示字符的内容为0,ASCII码值为48。

从内存的角度看它们的区别:

在计算机内存中,0、’\0’、null是一样的,值都是0。以数字的方式读取就是0,以字符的方式读取就是’\0’,以某些其他方式读取就是null(比如指针,null的定义跟编译器有关,有的编译器定义null可能不是0);而’0’在内存中的值是48,以字符读取就是’0’,以数字读取就是48。

c语言中的NULL:

c语言中NULL的本质是0,但是这个0不是当一个数字来解析,而是当一个内存地址来解析的,这个0其实是0x00000000,代表内存的0地址。

我们经常会定义 int *p = NULL 来初始化防止野指针,但是为什么要让一个野指针指向内存0地址处呢

主要是因为在大部分的CPU中,内存的0地址处都不是可以随便访问的,一般都是操作系统严密管控区域,所以应用程序不能随便访问,所以野指针指向了这个区域可以保证野指针不会造成误伤,如果程序无意识地解引用,指向0地址处的野指针则会出发段错误,这样就可以提示你找出程序中的错误。

一般比较一个指针和NULL是否相等不要写成 if ( p ==NULL),而写成 if ( NULL == p ),原因是第一种写法中如果不小心把双等号 == 写成单等号 = ,则编译器不会报错,但是程序的意思完全不一样了;而第二种写法如果不小心把双等号 == 写成了单等号 = ,则编译器会发现并报错。

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: STUN和TURN是WebRTC中两用于穿透防火墙和NAT(Network Address Translation,网络地址转换)的协议。 STUN(Session Traversal Utilities for NAT)是一让终端设备可以查询其真实的公网IP地址的服务。STUN服务的作用是帮助客户端在被NAT网络隔离的情况下,通过STUN服务器查询其真实的公网IP地址,从而实现通信。 TURN(Traversal Using Relays around NAT)是一将数据通过服务器转发的协议。TURN服务的作用是当两个客户端在不同的NAT网络之间无法直接通信时,将数据通过TURN服务器转发,从而实现通信。 总的来说,STUN的作用是帮助客户端查询其真实的公网IP地址,而TURN的作用是通过服务器转发数据以实现通信。 ### 回答2: WebRTC(Web实时通信)是一能够在浏览器之间直接进行点对点通信的Web技术。在WebRTC中,STUN(会话穿越工具,Session Traversal Utilities for NAT)服务和TURN(中继服务,Traversal Using Relays around NAT)服务扮演着不同的角色。 STUN服务主要用于解决网络地址转换(NAT)的问题。NAT是一常见的网络设备,它会将内部私有IP地址转换成外部公共IP地址。由于NAT的存在,直接从一个浏览器到另一个浏览器的点对点通信会面临许多挑战。STUN服务通过检测网络中的NAT类型和外部IP地址,为WebRTC提供一穿越NAT的方式。它会返回一些网络相关的信息,如公共IP地址和端口等,以帮助建立点对点连接。 TURN服务则用于解决无法通过STUN获取到合适的网络信息的情况,或者在对等连接无法建立时的备用方案。有些情况下,NAT类型或网络配置使得STUN无法成功穿越到最终目标。在这情况下,TURN服务充当中继服务器,扮演数据中继的角色。通过将数据从发送方发送到中继服务器,再由中继服务器转发给接收方,实现点对点通信。 总结一下,STUN服务的作用是帮助WebRTC穿越NAT,解决地址转换的问题。通过返回网络信息,可以在两个浏览器之间直接建立点对点连接。而TURN服务则是作为备用方案,用于解决无法成功穿越NAT的情况,并通过中继服务器实现数据传输。这两服务相辅相成,为WebRTC提供了可靠的实时通信基础。 ### 回答3: WebRTC是一实时通信技术,它允许浏览器之间直接进行音频、视频和数据的传输。在WebRTC中,STUN(Session Traversal Utilities for NAT)服务和TURN(Traversal Using Relays around NAT)服务是两不同的网络协议,用于解决网络通信中的一些问题。 STUN服务主要用于解决网络地址转换(NAT)的问题。NAT是一常见的网络配置,使得设备无法直接接收来自其他设备的连接。STUN服务器可以帮助WebRTC应用程序确定其所在的本地和公共IP地址,并通过在STUN请求中包含此信息来使其通过NAT。因此,STUN服务允许WebRTC应用程序找到另一个设备的公共IP地址,并从而建立直接的点对点连接。 而TURN服务则用于解决更复杂的网络环境下的通信问题。当两台设备之间的连接无法通过NAT进行直接传输时,TURN服务器充当中继服务器的角色。TURN服务器在两个设备之间传输数据,并允许设备通过中继服务器进行通信。这样,如果直接连接无法建立,TURN服务就可以提供一替代方案,确保设备之间的通信顺利进行。然而,使用TURN服务会增加数据传输的延迟和网络带宽的负载,因此应该尽量避免在所有通信中都使用TURN服务。 总的来说,STUN服务用于解决NAT问题,帮助WebRTC应用程序在设备之间建立直接点对点连接,并尽可能减少中间服务器的使用。TURN服务则用于作为一备选方案,当直接点对点连接无法建立时可以通过中继服务器进行通信。这两服务在解决WebRTC中的通信问题上起着不同的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellosc01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值