c - "\0"和 '\0' 之间的区别

标签 c null-character

我试图理解下面的一段代码,但我对 "\0"'\0' 感到困惑。我知道这很愚蠢,但请帮助我出

   #define MAX_HISTORY 20

   char *pStr = "\0";
   for(x=0;x<MAX_HISTORY;x++){
        str_temp = (char *)malloc((strlen(pStr)+1)*sizeof(char));
        if (str_temp=='\0'){
            return 1;
    }
    memset(str_temp, '\0', strlen(pStr) );
    strcpy(str_temp, pStr);

最佳答案

它们是不同的。

"\0" 是一个字符串文字,它有两个连续的 0,大致等同于:

const char a[2] = { '\0', '\0' };

'\0' 是一个值为 0 的 int。您可以在需要使用 '\0' 的任何地方始终为 0。

关于c - "\0"和 '\0' 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40129319/

相关文章:

C++:关于空字符

bash - 当存在空字符且使用 -z 选项时,Grep 不起作用

c - 执行流程的顺序

如果一次性直接输入,C++ 程序将失败

c - int main (int ac, char **av)

c - C 中的链表操作(段错误核心转储!)

c - strcpy() 将一个小字符串转换成一个更大的字符串,而其余的较大字符串保持不变。如何处理?

c++ - 字符串中的空字符

c++ - 如何从具有 null(0) 字符的 char 数组创建 C++ istringstream?

枚举中的常量在定义中未见