NULL的ASCII码是多少

glouze 2009-12-18 03:20:02
如题~~~~~~~~~






顺便帖一段test代码
#include <iostream>
using namespace std;

int main ()
{
if (NULL == '\0') cout<<'1'<<' ';
if (NULL == 0) cout<<'2'<<' ';
if ('\0' == 0) cout<<'3'<<'\n';

char m = ' ', n = ' ';
char a[4];
*a = 'x';
*(a+1) = 'y';
*(a+2) = 'z';
*(a+3) = '\0';
cout<<a<<endl;

char b[4];
* b = 'x';
*(b+1) = 'y';
*(b+2) = 'z';
*(b+3) = NULL;
cout<<b;

while (1);
return 0;
}


用vs2008编译的,输出结果是
1 2 3
xyz
xyz
理论上的NULL '\0' 0应该各不相同的,可编译出来的结果又有点不一样,不解
...全文
3666 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cattycat 2009-12-18
  • 打赏
  • 举报
回复
0,'\0'前面的\是转义吧,和字符'0'就区别开了。
highball 2009-12-18
  • 打赏
  • 举报
回复
NULL是值为0的指针,'/0'的ASCII码值是0,所以它们相等
glouze 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 supermegaboy 的回复:]
NULL不是0,0只是NULL的其中一种实现。NULL表示空,但在计算机里无法用一个“不存在”的东西表示空,于是0就作为其中一个实现。在c里,0、0L和( void* )0还有其它产生值0的整数常量表达式都是空指针常量,c++不包含( void* )0。因此0在c/c++里具有两种意义,一是空指针常量,二是整数常量。

'\0'表示ASCII码值为0的字符,在c中,其类型是int,因此'\0'能直接产生一个空指针常量;但在c++中,'\0'的类型是char,需要经过一个整形提升转换为int后,才能产生空指针常量。
[/Quote]
厉害~~~
有一个问题哈,就是
char a[4];
*a = 'x';
*(a+1) = 'y';
*(a+2) = 'z';
*(a+3) = '0';

这段代码不行呃

[Quote=引用 10 楼 supermegaboy 的回复:]
还有,楼主这个提问“NULL的ASCII码值是多少”是一个病句,NULL不是ASCII码字符,ASCII码有一个NUL的字符,码值为0,但不是我们所说的宏NULL,意义完全两回事,只不过值都为0罢了。
[/Quote]
知道了,谢谢~~~~
飞天御剑流 2009-12-18
  • 打赏
  • 举报
回复
还有,楼主这个提问“NULL的ASCII码值是多少”是一个病句,NULL不是ASCII码字符,ASCII码有一个NUL的字符,码值为0,但不是我们所说的宏NULL,意义完全两回事,只不过值都为0罢了。
120680451 2009-12-18
  • 打赏
  • 举报
回复

int *p = NULL ;
char c = '\0' ;

一般这样用,指针一般用NULL,字符一般用'\0',但也可就用0表示.
飞天御剑流 2009-12-18
  • 打赏
  • 举报
回复
NULL不是0,0只是NULL的其中一种实现。NULL表示空,但在计算机里无法用一个“不存在”的东西表示空,于是0就作为其中一个实现。在c里,0、0L和( void* )0还有其它产生值0的整数常量表达式都是空指针常量,c++不包含( void* )0。因此0在c/c++里具有两种意义,一是空指针常量,二是整数常量。

'\0'表示ASCII码值为0的字符,在c中,其类型是int,因此'\0'能直接产生一个空指针常量;但在c++中,'\0'的类型是char,需要经过一个整形提升转换为int后,才能产生空指针常量。
glouze 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 glouze 的回复:]
引用 4 楼 liao05050075 的回复:
引用 2 楼 glouze 的回复:
NULL有ASCII码吗,是多少

就是0阿。
http://baike.baidu.com/view/15482.htm?fr=ala0

那\0和NULL的ASCII码是一样的?
[/Quote]

最后一个问题,说了马上结帖
glouze 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liao05050075 的回复:]
引用 2 楼 glouze 的回复:
NULL有ASCII码吗,是多少

就是0阿。
http://baike.baidu.com/view/15482.htm?fr=ala0
[/Quote]
那\0和NULL的ASCII码是一样的?
aozhi 2009-12-18
  • 打赏
  • 举报
回复
0
liao05050075 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 glouze 的回复:]
NULL有ASCII码吗,是多少
[/Quote]
就是0阿。
http://baike.baidu.com/view/15482.htm?fr=ala0
glouze 2009-12-18
  • 打赏
  • 举报
回复
[code=ss]ss[/code]
glouze 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liao05050075 的回复:]
0 \0 NULL在数值上都是0
[/Quote]

NULL有ASCII码吗,是多少
liao05050075 2009-12-18
  • 打赏
  • 举报
回复
0 \0 NULL在数值上都是0

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧