c - 什么 ! (char*) 在 C 中的意思

标签 c pointers char

我在看一个例子,我看到了这个:

char *str;

/* ... */

if (!str || !*str) {
    return str;
}

是空的还是什么意思?

最佳答案

str 是一个字符指针。 ! 否定它。基本上,当 str == NULL 时,!str 的计算结果为真 (1)。

第二部分是说,(如果 str 指向某物)如果第一个字符是空字符 ('\0'),则计算结果为真 (1) - 表示它是一个空字符串。

注意:
*str 取消引用指针并检索第一个字符。这与执行 str[0] 相同。

关于c - 什么 ! (char*) 在 C 中的意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31737747/

相关文章:

C从文件: Reading only first char of line读取

C编译器警告: assignment from incompatible pointer type

c - 如何将指向 char 的指针放入另一个指向 char 的指针

iphone - 将文本字段的值(字符串)分配给 char*

c - C 编程参数有不完整类型错误

c - 检测内存泄漏的c程序

c - 变量周围的堆栈已损坏 - C

c++ - 在不同线程中取消引用指向原子对象的只读非原子指针是否安全?

c - 在 C 中通过 void 类型为 GSL 传递 double 组

c++ - 从字符串流复制到 char * 数组返回作为函数参数