日期:2014-05-16  浏览次数:20785 次

有点晕:Linux C下面的 '/0',NULL, 0x00,这三个字符是一回事吗 ? 使用的场合有什么不同 ? 不甚感激!
在学习Linux下的C开发的时候,这几个字符似乎是一回事,那他们之间有什么区别吗 ?使用的场景有什么不同 ?
'/0'和NULL都可以表示字符串的默认结束符吗 ?而memset初始化某个变量值的时候似乎都是用的0x00


------解决方案--------------------
'\0'其实就是0x0了。
------解决方案--------------------
NULL的定义,可以参考下
/usr/include/linux/stddef.h
#ifndef _LINUX_STDDEF_H
#define _LINUX_STDDEF_H



#undef NULL
#if defined(__cplusplus)
#define NULL 0
#else
#define NULL ((void *)0)
#endif


#endif

------解决方案--------------------
\0是0x00的ascii escape sequence的表示。

至于NULL和上面两者就没有多大关系了。
------解决方案--------------------
其实就是类型不一样,区分不同的赋值操作,提高可读性
------解决方案--------------------
字符时用\0,指针是用NULL,0x00很少见,一般直接用0代替;这三个本身是一个东西。
另外,这是c语言的问题,与linux无关。
------解决方案--------------------
引用:
字符时用\0,指针是用NULL,0x00很少见,一般直接用0代替;这三个本身是一个东西。
另外,这是c语言的问题,与linux无关。
正解