次のようなものがあるとしましょう。
#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
。