C参数不起作用?

hah*_*g65 2 c argument-passing

为什么这不起作用?当我尝试使用-l或-s作为第一个参数时,if语句不会使用.他们总是去发表其他声明.

#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    if (argv[1] == "-l")
    {
        printf("Yay!\n");
    }
    else if (argv[1] == "-s")
    {
        printf("Nay!\n");
    }
    else
    {
        printf("%s\n", argv[1]);
    }
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

qrd*_*rdl 10

您无法使用==运算符来比较字符串- strcmp()而是使用.

通过比较字符串使用==你比较char *指针的地址,而不是字符串值.