关于Null vs zero的问题

SIr*_*lot 3 c++ string case

我有这个功能:

void ToUpper(char * S)
{
    while (*S!=0)
    {
       *S=(*S >= 'a' && *S <= 'z')?(*S-'a'+'A'):*S;
       S++;
    }
} 
Run Code Online (Sandbox Code Playgroud)

*S!= 0是什么意思,它应该是null吗?

tyr*_*nid 9

那就是检查字符串的结尾,该字符串是一个值为零的字符.它没有以任何方式连接到NULL指针.

  • 另外,我认为当你的意思是字符串结束标记时使用''\ 0'更清楚,而当你指的是非指向指针时使用'NULL`更清楚.是的,它们在某种意义上都是零,但最好将*概念*分开. (6认同)
  • 这是正确的答案,但是当它发生时0和NULL一样. (2认同)
  • @John:C++标准要求NULL为#defined为0.但是,存储在空指针中的实际位不必为零. (2认同)