Я пишу программу C о обратной польской нотации, которая берет ее операнды и операторы через аргументы командной строки. Но все происходит неправильно, когда возникает оператор умножения «*», и я не знаю, почему.
Вот небольшая программа для отладки.Неверный номер аргументов командной строки при передаче `*`
test.c
int main(int argc, char **argv)
{
printf("%d\n", argc);
return 0;
}
// run case result
./test a b 3
./test * 66
Так почему '*' аргумент делает неправильный результат?
'*' имеют особое значение. – Maroun
Оболочка расширяет '*' ко всем видимым файлам в каталоге, в котором вы запускаете программу, которую вы можете использовать только «x» в качестве оператора умножения – hetepeperfan