Ich schreibe ein C-Programm über Reverse Polish Notation, das seine Operanden und Operatoren durch die Befehlszeilenargumente nimmt. Aber die Dinge laufen schief, wenn der Multiplikationsoperator '*' auftritt, und ich weiß nicht warum.
Hier ist das kleine Programm zum Debuggen.Falsche Befehlszeilenargumente Nummer beim Übergeben von `*`
test.c
int main(int argc, char **argv)
{
printf("%d\n", argc);
return 0;
}
// run case result
./test a b 3
./test * 66
Warum also das "* Argument macht ein falsches Ergebnis?
'*' haben eine besondere Bedeutung. – Maroun
Die Shell erweitert '*' um alle sichtbaren Dateien in dem Verzeichnis, in dem Sie das Programm ausführen. Verwenden Sie einfach 'x' als Multiplikationsoperator – hetepeperfan