请参阅下面的代码
#include<stdio.h>
int main ( int argc, char *argv[] )
{
int i=0;
for(i=1;i<argc-1;i++)
printf(" %s \n",argv[i]);
return 0;
}
编译并运行如下
gcc test.c
./a.out 1 * 2
现在它的o / p伤痕累累..!
o / p是:
1
a.out
Desktop
Documents
Downloads
ipmsg.log
linux-fusion-3.2.6
Music
Pictures
Public
Templates
test.c
答案 0 :(得分:5)
在星号周围使用单引号:
./a.out 1 '*' 2
这应该可以防止shell将其解释为特殊字符。
答案 1 :(得分:4)
您可以使用
调用您的测试./a.out 1 \* 2
如果你想传递*作为参数。您也可以使用单引号'*'
(按照Esa的建议)或双引号"*"
。
另请注意,您的循环当前忽略了最后一个参数。如果不是故意的话,请使用i<argc
作为退出条件。