C语言问题,关于NUL的请教,望高手指教,具体在下面:回答完美者额外加(20~50币)!

2024-12-18 07:05:38
推荐回答(4个)
回答1:

ASCII码为0~31的字符以及ASCII码为127的一共33个字符为控制字符,用于控制的。由于它们在计算机上不方便直接输入,所以用转义字符表示;同样它们也不方便在文章中打印出来,所以它们每个字符有一个名字,这些名字只是在文章中用来指代相应的字符,在程序中使用这些字符的时候不能使用名字,只能使用前面提到的转义字符。
NUL 空 VT 垂直制表 SYN 空转同步
SOH 标题开始 FF 走纸控制 ETB 信息组传送结束
STX 正文开始 CR 回车 CAN 作废
ETX 正文结束 SO 移位输出 EM 纸尽
EOY 传输结束 SI 移位输入 SUB 换置
ENQ 询问字符 DLE 空格 ESC 换码
ACK 承认 DC1 设备控制1 FS 文字分隔符
BEL 报警 DC2 设备控制2 GS 组分隔符
BS 退一格 DC3 设备控制3 RS 记录分隔符
HT 横向列表 DC4 设备控制4 US 单元分隔符
LF 换行 NAK 否定 DEL 删除

如果一定要在程序中使用这些名字,你需要自己去定义:
#define NUL '\0'
#define SOH '\1'
...
注意反斜杠后面是八进制,过7就进位了。

回答2:

NUL是ASCII码表中的第一个字符,它就是'\0',但是,通常C/C++环境中,都没有直接拿来做一个宏使用,因为大家已经习惯使用NULL了.
NUL是一个字符名,而不是大家习惯的编码中的宏定义.NUL直接用的方法是直接写"\0",而不是写NUL
.另外"/0"表示的是两个字符.你看到的 NUL就是"/0",是打印错误
如果要判断一个字符是否是NUL,只要看它与NULL或0或'\0'比较就可以了.你非要让NUL有意义,那就自己写个宏吧,但是写上宏然后直接用NUL不是一个好的习惯.

回答3:

首先你要知道nul和null是什么,nul我们只能把它当作是一标识符什么的,变量,常量什么的,你自己要首先定义再用,而null是系统就规定的,你不定义也是可以用的,null一般返回的值是空的

回答4:

NULL用于表示什么也不指向,也就是空指针((void *)0),0可以被用于任何地方,它是表示各种类型零值的符号并且编译器会挑出它
'\0'只被用于结束字符串
NUL没有被定义于C和C++,它不应该被使用,除非你自己定义它,像:#define nul '\0'