c - 在 C 中使用相等运算符 == 比较两个字符串是否相等

标签 c string pointers equality equality-operator

<分区>

int main (int argc, **argv)
{
       if (argv[1] == "-hello")
            printf("True\n");
       else
            printf("False\n");
}
# ./myProg -hello
False

为什么?我意识到 strcmp(argv[1], "-hello") == 0 返回 true...但为什么我不能使用相等运算符来比较两个 C 字符串?

最佳答案

因为 argv[1] (例如)实际上是一个指向字符串的指针。所以你所做的只是比较指针。

关于c - 在 C 中使用相等运算符 == 比较两个字符串是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933614/

相关文章:

c - 如何理解“"main function' s prototype cannot provided by the program”?

c - 如何将最高有效位(第 23 位)填充或扩展到第 24 位到第 31 位

string - 什么是 Swift String 到 NSString 的桥接开销?

c++ - 无法在类中初始化 unique_ptr 的 vector

c - 我如何在 C 中通过 malloc 分配一个指针数组和一个二维数组?

c - ungetc() 是否保证在 scanf ("...%c"后工作?

java - 有没有办法修复这个字符串输出?

javascript 字符串到语句

c - 结构元素无法分配这个问题,但我无法得到适当的结果?

C数组衰减消歧