c++ - NOT char_pointer 是什么意思?

标签 c++ syntax char logic unary-operator

我正在查看其他人编写的代码并碰到我不理解的“如果”:

if (!buffer || len == 0)

在函数中

void getText(const char* objName, char* buffer, uint16_t len)

传递给函数的缓冲区是 char 数组声明的:char buff[10]={0};

“!缓冲区”是什么意思?如果它是 bool 对我来说是有意义的,但我以前从未见过像 Not Char_Pointer 这样的声明。你能解释一下吗?

最佳答案

意思是“不为空”。当您将任何类型与逻辑运算符一起使用时,如果可能,它会“根据上下文转换为 bool”,对于指针,转换结果为 true,前提是指针不是无效的。请参阅 http://en.cppreference.com/w/cpp/language/implicit_conversion 中的 bool 转换了解详情。

我假设您从语法上使用 C 或 C++,但通常您应该使用编程语言标记问题。

关于c++ - NOT char_pointer 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43002900/

相关文章:

c++ - 编译器会自动优化重复代码吗?

c++ - 为什么我可以毫无错误地转换不相关类的指针?

c++ - 使用 "if constexpr"防止元组越界

programming-languages - 具有类似 python 语法但 native 代码生成的编程语言

java - 这段 Java 代码中的下划线实际上在做什么?

c++ - 从 VBA 中的 (c++ BSTR) 字符串中删除 chr(0)

c++ - 如何在不破坏其纹理的情况下将 Sprite 正确传递给 std::Vector?

string - 如何在多行中打破 YAML 中的字符串?

c - 尝试交换字符串内容时出现段错误 11

java - += 带有字符串和转换字符的运算符