你能用hex声明char **中的数据吗?

我想说我有这个

char *something[] = { "/bi", "-c", "5", NULL, NULL }; 

但是我想用hex声明它,我该怎么做呢; 编译器不断出错我:

 char *something[] = { {0x2f,0x62,0x69}, {0x2d,0x63}, {0x35}, {0x00}, {0x00} }; 

为此添加其他内容,0x00总是为空吗? 0x00总是在NULL为-1的系统上转换为NULL?

您可以在字符串文字中使用hex转义序列。 例如:

 char *something[] = { "\x2f\x62\x69", "\x2d\x63" }; 

要回答有关NULL和空指针的问题:宏NULL 始终为0.然后,编译器将其转换为适当的空指针。 comp.lang.c常见问题解答中有一整节对此进行了更全面的解释 。