2
回答
C语言中如何接收*等通配符参数
华为云4核8G,高性能云服务器,免费试用   
先看代码,逻辑很简单,打印main函数的所有传入参数.
/*
gcc test.c
./a.out 1 2 h*
*/

#include <stdio.h> 

int main(int argc, char* argv[]) {	
    int i=0;
    for(i=0; i<argc; i++) {
        printf("argv[%d]=%s\n", i, argv[i]);
    }
    return 0;
}

我期望看到的结果:

./a.out 1 2 h*

argv[0]=./a.out
argv[1]=1
argv[2]=2
argv[3]=h*


实际看到的结果:(除了1,2之外,系统把当前目录的所有h开头的文件名以参数传入程序)

./a.out 1 2 h*
argv[0]=./a.out
argv[1]=1
argv[2]=2
argv[3]=hello
argv[4]=havege.h
argv[5]=havege_test.c
argv[6]=havege_test.o
argv[7]=home.html
argv[8]=ht
argv[9]=ht.log

补充: 在win7和ubuntu下都运行过,情况相当.
GCC
举报
notmmao
发帖于3年前 2回/489阅
顶部