このフラグはcコマンド引数の文字列として扱われますか? [閉鎖]

このフラグはcコマンド引数の文字列として扱われますか? [閉鎖]

次のようなものがあるとしましょう。

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
    if (argv[1] == "-s") {
        printf("success\n");
    }
    else{
        printf("failed\n");
    }

return 0;
}

シェルから実行ファイルを実行すると印刷されますfailed...

ベストアンサー1

これは、実際の内容ではなくベースアドレスを比較するため、Cで==文字列比較にまたはを使用できないためです。!=Cで文字列を正しく比較するにはstrcmp

おすすめ記事