字体
第(1/6)页
关灯
   存书签 书架管理 返回目录
    参数……;

    但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。

    因为,main 的形参只有二个,而命令行中的参数个数原则上未加限制。argc 参数表示了命令

    行中参数的个数(注意:文件名本身也算一个参数),argc 的值是在输入命令行时由系统按

    实际参数的个数自动赋予的。

    例如有命令行为:

    C:\>E24  BASIC  foxpro  FORTRAN

    由于文件名 E24 本身也算一个参数,所以共有 4 个参数,因此 argc 取得的值为 4。argv 参

    数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图所示:

    【例 10.38】

    main(int argc,char *argv){

    while(argc-->1)

    printf("%s\n",*++argv);

    }

    本例是显示命令行中输入的参数。如果上例的可执行文件名为 e24.exe,存放在 A 驱动

    器的盘内。因此输入的命令行为:

    C:\>a:e24 BASIC foxpro FORTRAN

    则运行结果为:

    BASIC

    foxpro

    FORTRAN

    该行共有 4 个参数,执行 main 时,argc 的初值即为 4。argv 的 4 个元素分为 4 个字符

    串的首地址。执行 while 语句,每循环一次 argv 值减 1,当 argv 等于 1 时停止循环,共循

    环三次,因此共可输出三个参数。在 printf 函数中,由于打印项*++argv 是先加 1 再打印,

    故第一次打印的是 argv[1]所指的字符串 BASIC。第二、三次循环分别打印后二个字符串。

    而参数 e24 是文件名,不必输出。

    10.8 有关指针的数据类型和指针运算的小结

    10.8.1 有关指针的数据类型的小结

    定义

    int i;

    int *p

    int a[n];

    int *p[n];

    int (*p)[n];

    int f();

    int *p();

    int (*p)();

    int **p;

    含 义

    定义整型变量 i

    p 为指向整型数据的指针变量

    定义整型数组 a,它有 n 个元素

    定义指针数组 p,它由 n 个指向整型数据的指针元素组成

    p 为指向含 n 个元素的一维数组的指针变量

    f 为带回整型函数值的函数

    p 为带回一个指针的函数,该指针指向整型数据

    p 为指向函数的指针,该函数返回一个整型值

    P 是一个指针变量,它指向一个指向整型数据的指针变量

    10.8.2 指针运算的小结

    现把全部
上一章 目录 下一页