黑马程序员技术交流社区

标题: file的C源程序的问题 [打印本页]

作者: jiangenhao    时间: 2014-4-26 01:29
标题: file的C源程序的问题
本帖最后由 jiangenhao 于 2014-4-26 22:29 编辑

设有一个名为file的C源程序,且已知命令行为:file  girl  boy  student,则可得到以下运行结果的C源程序为()。
    girl
    boy
    student
    A. main( int argc, char *argv[])
    {  
        while (--argc>1)
            printf("%s%c", *argv, (argc>1)? '\n':' ');
    }
    B. main( int a, char * b[])
    {
        while (a-->1)
            printf("%s\n", *++b);
    }
    C. main( int argc, char *argv[])
    {  
        while (++argc>0)
            printf("%s%c", *++argv, (argc>1) ? ' ' :'\n');
    }
    D. main(int argc, char *argv[])
    {
        while (argc>1)
            printf("%s", *++argv);
    }

答案是B 请帮忙解释下为什么

作者: gaoxinglei123    时间: 2014-4-26 07:37
b的意思就是,当a>1;打印出*(b+1);然后a++;b++;b是一个指针数组里面元素分别指向命令行各个参数的首地址。第一个参数为file名所以跳过。*(b+i)就是*b[i];指向命令行第i个字符串
作者: jiangenhao    时间: 2014-4-26 22:29
谢谢马凯文 讲的太透彻了 谢了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2