如果字符串为空,我想输出一个单词。这是它的工作原理:
#include <iostream>
int main()
{
char q[]{'\0'};
if(!q[0])
std::cout << "hello" << std::endl;
return 0;
}
但它不是这样的:
#include <iostream>
int main()
{
char q[]{'\0'};
if(!q)
std::cout << "hello" << std::endl;
return 0;
}
为什么?
因为
q
数组实际上是第一个元素的地址。并且由于第一个元素 - 无论它是什么 -始终存在并具有地址,因此q
- 始终具有非零值。A!q
分别为零,即 “错误的”...