为什么* strptr = 0截断字符串?(C)

时间:2016-07-20 08:56:06

标签: c

为什么*strptr = 0截断字符串?(C)

为什么ascii值30 of 0变为null?

这里我与数字0,字符串0和字符串termianl 0混淆。

你的解释将不胜感激。

2 个答案:

答案 0 :(得分:6)

更确切地说,有三个词汇元素包含零字符:0(未引用),'0'(引用,通常(但不总是)等于48或{{ 1}}未加引号)和0x30(等于'\0',但在字符表示法中)。

问题在于讨论两个不同的价值观...... 0。忘记大约30,48等。请记住'0' != '\0''0'是不同的字符,'\0'是一个字符串终结符,其值为'\0' ...

我认为您打算使用0(强调引号)。

答案 1 :(得分:3)

所有标准库字符串例程都将字符'\0'视为字符串终止符,因此如果将其放在字符串的开头 - 它们都看不到要处理的数据,因为第一个字符是终止符,因此有效字符串为空。是的,每个标准'\0'是一个值为0的字符。结果:'\0' == 0是真的。