字符串结束字符NUL

来源:百度知道 编辑:UC知道 时间:2024/06/09 23:03:04
字符串的结束符是'\0',或者NUL,这个NUL怎么用?
char a[20];
...
a[5] = 'NUL';
如此书写在win-tc中编译错误,在codeblocks中编译通过,但是a[5]以后的字符照常输出,你们可以试一下……

我知道用'\0'好使,这个不用给我讲了……
to Raymondguo008 :但是我还没找到NUL的宏定义在哪个文件里面啊!……在哪里在哪里?

各种编译器是不同的
在WinTc中没有定义NUL
但是在codeblocks中定义了NUL
具体可以去看编译器的头文件定义
就是include文件夹里面的东东

既然知道'\0'好使,那么就用这个吧
我没有用过codeblocks
但是我估计内部实现也就是一个宏定义
#define NUL '\0'

如果你在WinTc中也做同样的宏定义
那么也是好使的\(^o^)/~

NULL是一个比较争议的定义,似乎是定义为-1.建议不要在这个地方使用。
PS:字符串结尾就是使用'\0'啊,你怎么会想到NULL呢?

\0是转义字符,在数值上等于0,NULL是一个宏,也是0,原型为#define NULL 0,因此,下面的代码是等效的
a[5]='\0';
a[5]=0;
a[5]=NULL;

NULL是在stdio.h定义的NULL=0

NULL