第十一章对函数的进一步讨论 11传给mi函数的参数 以前main函数的一对圆括号是空的,即main() 但是可以通过运行C程序把参数传给C程序如下所示: main(int argc, char *argv) 其中argc和argv是两个参数,可由用户命名 arg必须是整型,argv是一个指向字符型的指针数组的指针
第十一章 对函数的进一步讨论 11.1 传给main函数的参数 以前main函数的一对圆括号是空的,即main( ) 但是可以通过运行C程序,把参数传给C程序如下所示: main(int argc, char **argv) {……………} 其中argc和argv是两个参数,可由用户命名. argc必须是整型, argv是一个指向字符型的指针数组的指针
11传给main函数的参数 第二个参数也可定义成char*argv 若我们对上述主函数进行编译连接,生成名为 myc. exe的可执行文 件,则当我们打入 myc OK! GOOD<CR> 其中OK!和GOOD称为命令行参数,argc的值为3
11.1传给main函数的参数 第二个参数也可定义成:char *argv[] 若我们对上述主函数进行编译连接,生成名为myc.exe的可执行文 件,则当我们打入: myc OK! GOOD<CR> 其中OK! 和 GOOD称为命令行参数,argc的值为3
argv的结构如下所示 ar myc OK!O GOOD\O
myc\0 OK!\0 GOOD\0 \0 argv的结构如下所示: argv
即:argv[0]argv[1]argV2]分别指向字符串myc,OK!GOOD 字符串agvo必不可少argc的值至少1,按规定 argvlargcl由 系统置“0 例如 main(int argc, char argyll int 1: printf( argc=%d\n,argc) for(i-l; i<argc; 1++) printf(%os”argv[i]) printf(n
即: argv[0],argv[1],argv[2]分别指向字符串myc,OK!,GOOD 字符串argv[0]必不可少,argc的值至少1,按规定argv[argc]由 系统置‘\0’. 例如: main(int argc,char *argv[]) {int i; printf(“argc=%d\n”,argc); for(i=1;i<argc;i++) printf(“%s ”,argv[i]); printf(“\n”); }
若在命令行中打入: myc A COMMAND LINE<CR> 程序将输出:?? 22通过实参向函数传递函数名或指向函数 的指针变量
若在命令行中打入:myc A COMMAND LINE<CR> 程序将输出:?? 2.2 通过实参向函数传递函数名或指向函数 的指针变量