//g++ -Wall -Wextra temp.cpp
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, char *argv[]) {
for (int i=0;i<argc;i++) {
cout<<argv[i]<<" - "<<i<<"\n";
}
if (argc > 1 && strcmp(argv[1],"-c") == 0) {
cout<<"It works!\n";
}
return 0;
}
W Twoim kodzie porównałeś wskaźnik na tablicę charów z literałem. Do porównywania tablic znakowych w C i C++ używa się funkcji string compare strcmp(). Dokumentacja do funkcji.
Dobrym nawykiem jest też sprawdzenie czy liczba argumentów jest wystarczająca. Twój program uruchomiony bez argumentu wykrzaczy się.